Complete overview of the YITP user registration journey, from initial form submission through account activation and welcome experience. This documentation reflects the current implementation validated by our comprehensive test suite with an 80.8% success rate.
YITP User Flow Documentation
Comprehensive technical documentation and visual guides for YITP workflows
Quick Navigation
User Registration Journey
Email Workflow
Overview of the automated email communications and robust failure handling mechanisms during the registration journey.
OTP Verification Email
Email Delivery & Failure Handling
Immediately sent after user completes registration form. If delivery fails, system automatically activates account and shows warning message to ensure user access.
Email Content & Branding
Contains 6-digit verification code with YITP branding, clear instructions, and mobile-responsive HTML/plain text versions
Security & Validity
OTP code expires after 200 minutes for security with resend functionality for expired codes
Admin Notification Email
Automatic Admin Alert
Sent to admin@youthimpactglobal.com immediately after successful OTP verification to notify the operations team of new registrations
User Information
Contains new user details including name, email, registration timestamp, and profile information for admin tracking
Welcome Email
Email Delivery
Sent immediately after successful OTP verification, account activation, and admin notification
Personalized Welcome Message
Personalized welcome with user's name, YITP program information, and clear next steps for platform engagement
Program Details & Resources
Information about available courses, sponsorship opportunities, community features, and platform navigation guidance
Welcome Page Experience
After successful OTP verification and automatic login, users are redirected to a personalized welcome page controlled by session management that guides them through their next steps on the YITP platform.
just_completed_otp_verification and timestamp tracking to provide a personalized onboarding experience accessible only to newly verified users.
Welcome Page Features & Session Control
Session-Based Access Control
Welcome page accessible only with valid session flag just_completed_otp_verification and timestamp, ensuring secure onboarding flow
Personalized Greeting & Status
Welcome message with user's name, verification confirmation, and account activation status display
Profile Completion Tracking
Profile completion percentage calculation and guided steps for completing user profile information
Smart Navigation & Next Steps
Intelligent navigation with direct links to dashboard (/lms/dashboard/), courses (/lms/courses/), and profile (/profile/) based on user status
Course Enrollment & Platform Access
Direct course browsing and enrollment options with enrollment count tracking and personalized recommendations
User Course Enrollment Journey
Complete overview of the YITP user course enrollment journey, from login through course completion and certification.
User Login & Authentication
How users securely access their YITP account and learning dashboard.
Login Form
User enters their email address and password on the login page
Credential Verification
System verifies the email and password match an existing account
Access Granted
User is logged in and redirected to their personalized profile dashboard
Interactive Visual Flowchart
The following interactive flowchart illustrates the complete user course enrollment journey:
Course Browsing & Selection
Discover and explore YITP courses that match your learning goals and interests.
Browse Course Catalog
Access the complete catalog of available YITP courses from your profile
Filter and Search
Use filters to find courses by category, difficulty, or price, or search by keywords
Review Course Details
View comprehensive course information including objectives, instructor, and requirements
Make Enrollment Decision
Choose to enroll in courses that align with your learning goals
Sponsorship Request Process
How to request financial assistance for YITP programs through our sponsorship system.
Open Request Form
Click the "Request Sponsorship" button on your profile dashboard
Complete Application
Fill out the sponsorship form with program details and financial information
Provide Emergency Contact
Add emergency contact information as required for program participation
Submit Request
Submit your completed sponsorship application for review
Confirmation & Review
Receive email confirmation and await review from the YITP team
Course Enrollment (Free & Paid)
Simple enrollment process for both free and paid YITP courses.
Free Course Enrollment
Click Enroll
Simply click the "Enroll Now" button on any free course page
Instant Access
You're immediately enrolled and can start learning right away
Email Confirmation
Receive a confirmation email with course access details
Paid Course Enrollment with M-Pesa Integration
Payment Method Selection
Choose between M-Pesa mobile payment or bank transfer for course payment
M-Pesa STK Push
For M-Pesa payments, receive an instant payment prompt on your phone to complete the transaction
Payment Confirmation
System automatically verifies M-Pesa payments or processes manual bank transfer verification
Profile Status Update
Your payment status is updated in your profile, enabling access to paid courses
Course Enrollment Access
With confirmed payment, you can now enroll in any paid course and start learning immediately
Progress Tracking & Analytics
Track your learning progress with sequential lesson access, real-time analytics, and automated certificate generation upon course completion.
Sequential Lesson Access
Complete lessons in order - each lesson unlocks the next one, ensuring structured learning progression
Real-Time Progress Tracking
View your completion percentage and track progress across all enrolled courses
Cross-Module Navigation
Navigate seamlessly between modules while maintaining lesson completion requirements
Learning Analytics Dashboard
View comprehensive learning metrics including time spent, completion rates, and performance data
Automatic Course Completion
When all lessons are completed, the system automatically marks the course as complete
Certificate Generation
Upon course completion, receive an automatically generated certificate via email
Email Notification System
Comprehensive email notification system that keeps users and administrators informed throughout the entire enrollment and learning journey.
Enrollment Confirmation Emails
Students receive detailed enrollment confirmation emails with course information and access instructions
Admin Enrollment Notifications
Administrators receive comprehensive notifications about new enrollments including student details and course statistics
Payment Confirmation Emails
Automated payment confirmation emails are sent when M-Pesa or bank transfer payments are successfully processed
Course Completion Notifications
Students receive congratulatory emails when they complete courses, including achievement summaries
Certificate Issuance Emails
Automated certificate delivery emails with downloadable certificates are sent upon course completion
User Learning Journey
Complete overview of how students access course content and progress through lessons in a structured, sequential learning experience leading to course completion.
Learning Journey Process Steps
Step-by-step breakdown of how students experience their complete learning journey, from accessing their first lesson to receiving their course completion certificate.
Course Access & Getting Started
Students log in and access their enrolled courses through a personalized dashboard that shows their learning progress and available content
First Lesson Discovery
Students easily find and access their first lesson, which is automatically available without any prerequisites, allowing them to begin learning immediately
Interactive Content Engagement
Students engage with multi-format lesson tabs (Reading, Video, Podcast) and Downloadable Notes, all wrapped in the YITP brand and available in their preferred translation.
Knowledge Assessment
Students complete quizzes and assessments that test their understanding, with immediate feedback and multiple attempts to ensure mastery
Sequential Progression
Students unlock new lessons automatically as they complete previous ones, ensuring they build knowledge in the proper sequence
Progress Tracking
Students can monitor their learning progress through visual indicators, completion percentages, and achievement badges that motivate continued learning
Lesson Discussions & Support
Learners can share insights inside the lesson discussion tab, raise questions, and receive guided responses from facilitators without leaving the learning experience.
Course Completion & Certification
Upon completing all course requirements, students automatically receive their completion certificate and can access advanced courses or additional learning opportunities
Complete Learning Visual Flow Chart
Interactive visual representation of the complete student learning journey, showing the flow from course access through completion and certification.
Course Access & Getting Started
How students begin their learning journey by accessing courses and navigating to their first lesson.
Dashboard Overview
Students see a personalized dashboard showing their enrolled courses, progress statistics, and recent activity
Course Selection
Students choose which course to study from their enrollment list, with clear progress indicators for each course
Module Navigation
Students view the course structure organized into modules, with clear indication of which lessons are available to access
Lesson Progression & Content
How students engage with lesson content and progress through the sequential learning structure.
Lesson Content Display
Students view rich, multimedia lesson content with professional YITP branding, including text, images, videos, and interactive elements
Progress Tracking
Students can track their time spent on lessons and see their overall progress through visual indicators and completion percentages
Lesson Completion
Students mark lessons as complete when finished, which automatically unlocks the next lesson in the sequence
Sequential Unlocking
New lessons become available only after completing previous ones, ensuring students build knowledge in the proper order
Quiz Taking & Assessment
How students complete assessments and receive feedback on their learning progress.
Quiz Discovery
Students find quizzes integrated into their lesson sequence, with clear information about requirements and expectations
Assessment Experience
Students take quizzes in a focused, distraction-free environment with multiple question types and clear instructions
Immediate Feedback
Students receive instant results and detailed feedback, helping them understand correct answers and learn from mistakes
Retake Opportunities
Students can retake quizzes if needed, with multiple attempts available to ensure mastery of the material
Progress Tracking & Analytics
How students monitor their learning progress and access detailed analytics about their performance.
Progress Dashboard
Students access a comprehensive dashboard showing their progress across all courses, with visual indicators and completion percentages
Learning Analytics
Students view detailed analytics including time spent learning, quiz performance, and learning streaks that motivate continued engagement
Achievement Recognition
Students earn badges and achievements for reaching milestones, maintaining learning streaks, and completing challenging content
Performance Insights
Students receive personalized insights about their learning patterns and suggestions for improvement based on their performance data
Registration Process Steps
Step-by-step breakdown of the YITP user registration journey, from initial form submission through complete account activation and welcome experience.
Form Submission & Validation
User fills out registration form with personal details. System validates for duplicate usernames/emails with message "Username already taken. Please choose a different username." and ensures all required fields are completed.
Account Creation (Inactive)
Django User object created with is_active=False to ensure email verification before platform access
Profile Creation & Data Storage
User Profile created via Django signals with phone number, personal details, and initial profile completion tracking
OTP Generation & Email Delivery
6-digit OTP generated with a 200-minute expiry and sent through the Mailtrap transactional API using admin@youthimpactglobal.com. Delivery logs surface in the Mailtrap dashboard for live monitoring.
Email Failure Handling
If email delivery fails, system automatically activates user account and provides warning message, ensuring users can still access the platform while maintaining security.
OTP Verification & Validation
User enters OTP code with validation for correct format, expiry time, and code accuracy. Includes resend functionality for expired codes.
Account Activation & Auto-Login
User account activated (is_active=True) upon successful OTP verification with automatic login and session establishment
Admin Notification & Welcome Email
Admin notification sent to admin@youthimpactglobal.com about new user registration, followed by a branded welcome email to the learner
Session Management & Welcome Redirect
Session flag just_completed_otp_verification set for welcome page access control, user redirected to personalized welcome experience
Welcome Page & Profile Completion
User sees welcome page with next steps, course enrollment options, profile completion tracking, and guided onboarding flow
Interactive Visual Flowchart
The following interactive flowchart illustrates the complete user registration journey:
Username/Email Check} C -->|Valid| D[Create User Account
is_active=False] C -->|Duplicate Username| E[Show Error: Username already taken] C -->|Other Validation Error| F[Show Validation Errors] E --> B F --> B D --> G[Create User Profile
Store Personal Data] G --> H[Generate 6-digit OTP
200min expiry] H --> I{Email Delivery} I -->|Success| J[Send OTP Email
YITP Branded] I -->|Failure| K[Activate Account
Show Warning Message] J --> L[Redirect to OTP Page] K --> L L --> M[User Enters OTP] M --> N{OTP Valid?} N -->|Valid| O[Activate User Account
is_active=True] N -->|Invalid| P[Show Error Message] N -->|Expired| Q[Show Expired Message] P --> M Q --> R[Resend OTP Option] R --> H O --> S[Auto-Login User
Set Session Flag] S --> T[Send Admin Notification
to admin@youthimpactglobal.com] T --> U[Send Welcome Email] U --> V[Set Session: just_completed_otp_verification] V --> W[Redirect to Welcome Page] W --> X[Welcome Page Experience
Profile Completion & Next Steps] X --> Y[Registration Journey Complete
User Can Access Platform] style A fill:#e3f2fd style D fill:#fff3cd style G fill:#d4edda style H fill:#f3e5f5 style J fill:#e8f5e8 style K fill:#ffebcd style O fill:#d4edda style S fill:#e8f5e8 style T fill:#f0e68c style U fill:#e8f5e8 style V fill:#dda0dd style W fill:#fff3cd style X fill:#e3f2fd style Y fill:#c8e6c9
Course Completion & Certificates
How students complete their courses and receive recognition for their achievements through certificates and credentials.
Completion Requirements
Students can clearly see what requirements remain for course completion, including lessons, quizzes, and any final assessments
Automatic Completion Detection
The system automatically recognizes when students have met all course requirements and triggers the completion process
Certificate Generation
Students automatically receive a professional completion certificate with their name, course details, and completion date
Completion Notification
Students receive email notifications celebrating their achievement and providing information about next steps or advanced courses
Continued Learning Opportunities
Students are presented with recommendations for additional courses and learning paths to continue their educational journey
Communications Journey
This section covers the complete communications stack—direct messaging, forum discussions, lesson-based help, notifications, and announcement delivery—powering collaboration inside YITP.
Message, Topic, Reply, Notification, and Announcement models to provide a unified communications experience.
- Messaging Hub: Inbox, Sent, Compose, and message detail screens powered by
MessageDashboardView,InboxView, andMessageDetailView. - Discussion Forums: Category-based forums, pinned topics, and threaded replies managed by
ForumListView,TopicDetailView, andReplyTopicView. - Notifications & Announcements: Real-time unread counters, bulk-mark-as-read actions, and announcement feeds driven by
NotificationListViewandAnnouncementListView. - Lesson Help: Lesson-specific questions escalate to instructors with automatic notifications via
SendLessonMessageView.
Communications Overview
Every interaction starts from the communications dashboard which summarizes unread messages, notifications, and announcements. From there, learners can move into personal inboxes, forum discussions, or lesson-specific questions.
Dashboard Snapshot
MessageDashboardView aggregates unread counts, recent conversations, announcements, and shortcuts to compose new messages or open the forum list.
Messaging Surfaces
Learners navigate between Inbox, Sent, Compose, and Message Detail views. Every message supports read receipts (is_read, read_at) and threaded replies using parent_message.
Forums & Topics
Forums host long-lived conversations with pinned topics, last-activity tracking, and paginated replies. Learners can create topics, respond, and subscribe for updates.
Notifications & Announcements
Each critical action triggers a notification entry with optional action_url. Announcements surface platform-wide updates and support detail pages for long-form content.
Communications Flowchart
The diagram below shows how direct messages, lesson questions, notifications, and forum replies travel through the system.
action_url => message detail] G --> J[MessageDetailView
mark as read] J --> K[ReplyMessageView] K --> G D --> L[TopicDetailView] L --> M[ReplyTopicView] M --> L D --> N[CreateTopicView] C --> I A --> O[Lesson Screen Help Widget] O --> P[SendLessonMessageView] P --> H A --> Q[Announcements Feed] Q --> R[AnnouncementDetailView] E --> I style A fill:#fef3c7 style B fill:#e0f2fe style C fill:#e0f7fa style D fill:#ede9fe style E fill:#ffe4e6 style H fill:#d1fae5 style I fill:#fbcfe8 style Q fill:#ffedd5
GetUnreadCountAPIView.
Messaging Workflow & APIs
Direct messaging is a threaded system with real-time unread badges and instructor escalation for lesson-specific help.
Compose & Send
ComposeMessageView and SendMessageAPIView validate recipients, persist messages, and display success toasts.
Inbox & Sent Views
InboxView and SentMessagesView paginate 20 messages per page, ordered by sent_at, with empty states and quick actions.
Message Detail & Threading
MessageDetailView marks messages as read, supports inline replies via ReplyMessageView, and links back to parent threads.
Lesson Help Widget
SendLessonMessageView receives JSON payloads from lesson screens, validates enrollment, and routes the question to staff while creating instructor notifications.
LoginRequiredMixin, ensuring only message participants can access their threads. JSON endpoints also validate enrollment and staff roles before sending messages.
Discussion Forums & Topics
Forums extend conversations beyond one-to-one messaging by offering categories, pinned topics, and reply threading.
Forum Discovery
ForumListView groups forums by order and is_active, giving learners an overview of active communities.
Topic Management
Topics can be created via CreateTopicView, pinned, and sorted by last_activity. Each topic tracks author metadata and publish status.
Replies & Moderation
ReplyTopicView persists replies, updates topic last_activity, and supports moderation hooks for future spam control.
communication app models, enabling future sentiment or participation insights.
Notifications & Announcements
Notifications keep learners aware of new messages, replies, and announcements with badge counters and quick actions.
Unread Counters
GetUnreadCountAPIView aggregates unread messages and notifications for the navbar badge.
Notifications Center
NotificationListView paginates user notifications with action URLs. Users can mark individual entries read or call MarkAllNotificationsReadView for bulk updates.
Announcements
AnnouncementListView and AnnouncementDetailView publish platform-wide updates. Each announcement respects is_published and can be scheduled via the admin.
JSONResponse for AJAX read states) and accessible—buttons include clear labels and focus states to keep the experience inclusive.