YITP User Flow Documentation

Comprehensive technical documentation and visual guides for YITP workflows

User Registration Journey

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.

Implementation Status: The registration journey has been thoroughly tested and optimized with robust validation, email failure handling, and seamless user experience. All core functionality is production-ready with comprehensive error handling and fallback mechanisms.

Registration Process Steps

Step-by-step breakdown of the YITP user registration journey, from initial form submission through complete account activation and welcome experience.

Current Status: The registration journey is fully functional and production-ready with comprehensive validation, robust email failure handling, OTP verification system, automatic login, session management, and personalized welcome experience.
1
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.

2
Account Creation (Inactive)

Django User object created with is_active=False to ensure email verification before platform access

3
Profile Creation & Data Storage

User Profile created via Django signals with phone number, personal details, and initial profile completion tracking

4
OTP Generation & Email Delivery

6-digit OTP generated with 200-minute expiry and sent via YITP-branded email using Gmail SMTP. Includes robust email failure handling with fallback mechanisms.

5
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.

6
OTP Verification & Validation

User enters OTP code with validation for correct format, expiry time, and code accuracy. Includes resend functionality for expired codes.

7
Account Activation & Auto-Login

User account activated (is_active=True) upon successful OTP verification with automatic login and session establishment

8
Admin Notification & Welcome Email

Admin notification sent to [email protected] about new user registration, followed by branded welcome email to user

9
Session Management & Welcome Redirect

Session flag just_completed_otp_verification set for welcome page access control, user redirected to personalized welcome experience

10
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:

graph TD A[User Visits Registration Page] --> B[Fills Registration Form] B --> C{Form Validation
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 [email protected]] 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
Technical Note: This flowchart is interactive and can be zoomed/panned. Each step represents a specific function or process in the YITP codebase.

Email Workflow

Overview of the automated email communications and robust failure handling mechanisms during the registration journey.

Email System Status: The email delivery system includes comprehensive error handling with fallback mechanisms. Uses Gmail SMTP ([email protected]) with robust failure detection and user-friendly error recovery.

OTP Verification Email

1
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.

2
Email Content & Branding

Contains 6-digit verification code with YITP branding, clear instructions, and mobile-responsive HTML/plain text versions

3
Security & Validity

OTP code expires after 200 minutes for security with resend functionality for expired codes

Admin Notification Email

1
Automatic Admin Alert

Sent to [email protected] immediately after successful OTP verification to notify administrators of new user registrations

2
User Information

Contains new user details including name, email, registration timestamp, and profile information for admin tracking

Welcome Email

1
Email Delivery

Sent immediately after successful OTP verification, account activation, and admin notification

2
Personalized Welcome Message

Personalized welcome with user's name, YITP program information, and clear next steps for platform engagement

3
Program Details & Resources

Information about available courses, sponsorship opportunities, community features, and platform navigation guidance

Email Features: All emails use YITP branding colors (#ff5d15 orange, #1a2e53 dark blue), are mobile-responsive, include both HTML and plain text versions, and have comprehensive error handling with fallback mechanisms.

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.

Session Management: The welcome page uses session flag just_completed_otp_verification and timestamp tracking to provide a personalized onboarding experience accessible only to newly verified users.

Welcome Page Features & Session Control

1
Session-Based Access Control

Welcome page accessible only with valid session flag just_completed_otp_verification and timestamp, ensuring secure onboarding flow

2
Personalized Greeting & Status

Welcome message with user's name, verification confirmation, and account activation status display

3
Profile Completion Tracking

Profile completion percentage calculation and guided steps for completing user profile information

4
Smart Navigation & Next Steps

Intelligent navigation with direct links to dashboard (/lms/dashboard/), courses (/lms/courses/), and profile (/profile/) based on user status

5
Course Enrollment & Platform Access

Direct course browsing and enrollment options with enrollment count tracking and personalized recommendations

Technical Implementation: The welcome page uses Django session management, middleware integration, and smart redirect logic to provide a seamless transition from registration to platform engagement while maintaining security and user experience standards.

User Course Enrollment Journey

Complete overview of the YITP user course enrollment journey, from login through course completion and certification.

Current Status: The complete user course enrollment journey has been successfully implemented with unified enrollment services, automated payment processing via M-Pesa integration, real-time progress tracking, and automated certificate generation upon course completion.

User Login & Authentication

How users securely access their YITP account and learning dashboard.

Authentication Status: The login system is fully secure and working reliably with proper session management and user verification.
1
Login Form

User enters their email address and password on the login page

2
Credential Verification

System verifies the email and password match an existing account

3
Access Granted

User is logged in and redirected to their personalized profile dashboard

User Experience: The login process is streamlined and secure, providing immediate access to all YITP learning features and personal dashboard.

Interactive Visual Flowchart

The following interactive flowchart illustrates the complete user course enrollment journey:

graph TD A[User Login] --> B{Authentication Success?} B -->|Valid| C[Access LMS Dashboard] B -->|Invalid| D[Show Login Error] D --> A C --> E[Browse Available Courses] E --> F[Select Course of Interest] F --> G[View Course Details] G --> H{Course Type?} H -->|Free Course| I[Click Enroll Now] H -->|Paid Course| J{Payment Status Check} J -->|Payment Confirmed| I J -->|Payment Required| K[Payment Processing Required] K --> L[Choose Payment Method] L --> M{Payment Method?} M -->|M-Pesa| N[STK Push Initiated] M -->|Bank Transfer| O[Bank Details Provided] N --> P[Complete Phone Payment] O --> Q[Manual Payment Verification] P --> R{Payment Successful?} Q --> R R -->|Yes| S[Update Profile Payment Status] R -->|No| T[Payment Failed - Retry] T --> L S --> U[Payment Confirmation Email] U --> I I --> V[EnrollmentService Validation] V --> W[Create Enrollment Record] W --> X[Send Enrollment Confirmation] X --> Y[Course Access Granted] Y --> Z[Sequential Lesson Access] Z --> AA[Progress Tracking & Analytics] AA --> BB{Course Complete?} BB -->|No| Z BB -->|Yes| CC[Generate Certificate] CC --> DD[Send Completion Email] DD --> EE[Learning Journey Complete] style A fill:#e3f2fd style C fill:#fff3cd style E fill:#d4edda style H fill:#f3e5f5 style J fill:#e8f5e8 style V fill:#d4edda style W fill:#e8f5e8 style Y fill:#fff3cd style AA fill:#e3f2fd style CC fill:#c8e6c9 style EE fill:#c8e6c9
Technical Note: This flowchart represents the complete user enrollment journey powered by Django's EnrollmentService, featuring automated M-Pesa payment processing, real-time progress tracking, and certificate generation upon course completion.

Profile Navigation & Management

Your personalized dashboard where you can manage your learning journey and account settings.

Profile System: The unified profile provides a comprehensive view of your YITP experience with easy navigation between all features.
1
Personal Information

View and update your basic profile details and contact information

2
Learning Dashboard

Track your course progress, achievements, and learning milestones

3
Course Management

Access your enrolled courses and continue where you left off

4
Progress Analytics

View detailed insights about your learning performance and goals

5
Account Settings

Manage your payment information, billing history, and account preferences

Navigation: All profile sections are easily accessible through intuitive navigation tabs and quick action buttons.

Course Browsing & Selection

Discover and explore YITP courses that match your learning goals and interests.

Course Discovery: The course browsing system makes it easy to find the perfect courses for your learning journey with intuitive search and filtering options.
1
Browse Course Catalog

Access the complete catalog of available YITP courses from your profile

2
Filter and Search

Use filters to find courses by category, difficulty, or price, or search by keywords

3
Review Course Details

View comprehensive course information including objectives, instructor, and requirements

4
Make Enrollment Decision

Choose to enroll in courses that align with your learning goals

Course Information: Each course page provides detailed information to help you make informed enrollment decisions.

Sponsorship Request Process

How to request financial assistance for YITP programs through our sponsorship system.

Sponsorship System: The sponsorship request process is designed to be comprehensive yet user-friendly, ensuring all necessary information is collected efficiently.
1
Open Request Form

Click the "Request Sponsorship" button on your profile dashboard

2
Complete Application

Fill out the sponsorship form with program details and financial information

3
Provide Emergency Contact

Add emergency contact information as required for program participation

4
Submit Request

Submit your completed sponsorship application for review

5
Confirmation & Review

Receive email confirmation and await review from the YITP team

Application Process: Your sponsorship request will be carefully reviewed, and you'll receive updates via email throughout the process.

Course Enrollment (Free & Paid)

Simple enrollment process for both free and paid YITP courses.

Enrollment System: The enrollment process is designed to be quick and straightforward, with automatic verification for payment requirements.

Free Course Enrollment

1
Click Enroll

Simply click the "Enroll Now" button on any free course page

2
Instant Access

You're immediately enrolled and can start learning right away

3
Email Confirmation

Receive a confirmation email with course access details

Paid Course Enrollment with M-Pesa Integration

1
Payment Method Selection

Choose between M-Pesa mobile payment or bank transfer for course payment

2
M-Pesa STK Push

For M-Pesa payments, receive an instant payment prompt on your phone to complete the transaction

3
Payment Confirmation

System automatically verifies M-Pesa payments or processes manual bank transfer verification

4
Profile Status Update

Your payment status is updated in your profile, enabling access to paid courses

5
Course Enrollment Access

With confirmed payment, you can now enroll in any paid course and start learning immediately

Payment Integration: The M-Pesa integration provides seamless mobile payments while bank transfer options ensure accessibility for all users. Payment verification is automated for M-Pesa and manual for bank transfers.

Progress Tracking & Analytics

Track your learning progress with sequential lesson access, real-time analytics, and automated certificate generation upon course completion.

Advanced Progress Tracking: The system features sequential lesson progression, cross-module navigation, completion tracking, and automatic certificate generation when courses are completed.
1
Sequential Lesson Access

Complete lessons in order - each lesson unlocks the next one, ensuring structured learning progression

2
Real-Time Progress Tracking

View your completion percentage and track progress across all enrolled courses

3
Cross-Module Navigation

Navigate seamlessly between modules while maintaining lesson completion requirements

4
Learning Analytics Dashboard

View comprehensive learning metrics including time spent, completion rates, and performance data

5
Automatic Course Completion

When all lessons are completed, the system automatically marks the course as complete

6
Certificate Generation

Upon course completion, receive an automatically generated certificate via email

Smart Progress System: The system automatically tracks lesson completion, calculates progress percentages, and triggers certificate generation when courses are completed, with email notifications sent for all major milestones.

Email Notification System

Comprehensive email notification system that keeps users and administrators informed throughout the entire enrollment and learning journey.

Automated Communications: The system automatically sends targeted email notifications for enrollment confirmations, payment updates, course completion, and certificate issuance.
1
Enrollment Confirmation Emails

Students receive detailed enrollment confirmation emails with course information and access instructions

2
Admin Enrollment Notifications

Administrators receive comprehensive notifications about new enrollments including student details and course statistics

3
Payment Confirmation Emails

Automated payment confirmation emails are sent when M-Pesa or bank transfer payments are successfully processed

4
Course Completion Notifications

Students receive congratulatory emails when they complete courses, including achievement summaries

5
Certificate Issuance Emails

Automated certificate delivery emails with downloadable certificates are sent upon course completion

Email Integration: All emails are sent using Django's email framework with HTML and plain text versions, ensuring compatibility across all email clients and providing professional communication throughout the learning journey.

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.

Current Status: The complete learning journey system has been successfully implemented and tested, providing students with a seamless experience from first lesson access through course completion and certificate issuance.
Enhanced Features: The system includes intelligent lesson progression, interactive assessments, real-time progress tracking, and automatic certificate generation, creating a comprehensive learning experience that guides students to success.

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.

Learning Experience: The learning journey provides a structured, engaging path that builds knowledge progressively while maintaining student motivation through clear milestones and achievements.
1
Course Access & Getting Started

Students log in and access their enrolled courses through a personalized dashboard that shows their learning progress and available content

2
First Lesson Discovery

Students easily find and access their first lesson, which is automatically available without any prerequisites, allowing them to begin learning immediately

3
Interactive Content Engagement

Students engage with rich multimedia content including text, images, videos, and interactive elements, all presented with YITP's professional branding

4
Knowledge Assessment

Students complete quizzes and assessments that test their understanding, with immediate feedback and multiple attempts to ensure mastery

5
Sequential Progression

Students unlock new lessons automatically as they complete previous ones, ensuring they build knowledge in the proper sequence

6
Progress Tracking

Students can monitor their learning progress through visual indicators, completion percentages, and achievement badges that motivate continued learning

7
Course Completion & Certification

Upon completing all course requirements, students automatically receive their completion certificate and can access advanced courses or additional learning opportunities

Student-Centered Design: Every aspect of the learning journey is designed with the student experience in mind, providing clear guidance, immediate feedback, and meaningful recognition of achievements.

Complete Learning Visual Flow Chart

Interactive visual representation of the complete student learning journey, showing the flow from course access through completion and certification.

Interactive Flowchart: This Mermaid.js flowchart provides a comprehensive visual guide to understanding how students progress through their complete learning experience in the YITP learning management system.
flowchart TD A[Student Logs In] --> B[Access Course Dashboard] B --> C[View Enrolled Courses] C --> D[Select Course to Study] D --> E[View Course Modules] E --> F[Access First Lesson] F --> G[Read Lesson Content] G --> H[Engage with Multimedia] H --> I{Lesson Complete?} I -->|Yes| J[Mark Lesson as Complete] I -->|No| G J --> K{Quiz Available?} K -->|Yes| L[Take Quiz] K -->|No| M[Check Next Lesson] L --> N{Quiz Passed?} N -->|Yes| O[Receive Quiz Feedback] N -->|No| P[Review Incorrect Answers] P --> Q{Retake Available?} Q -->|Yes| L Q -->|No| R[Study Additional Resources] R --> L O --> M M --> S{More Lessons Available?} S -->|Yes| T[Unlock Next Lesson] S -->|No| U{Module Complete?} T --> F U -->|Yes| V[Progress to Next Module] U -->|No| W[Continue Current Module] V --> E W --> F U -->|All Modules Complete| X[Course Completion Check] X --> Y[Generate Certificate] Y --> Z[Send Completion Email] Z --> AA[Update Student Records] AA --> BB[Display Achievement Badge] BB --> CC[Unlock Advanced Courses] %% Styling with YITP colors classDef startEnd fill:#ff5d15,stroke:#1a2e53,stroke-width:3px,color:#fff classDef process fill:#1a2e53,stroke:#ff5d15,stroke-width:2px,color:#fff classDef decision fill:#f8f9fa,stroke:#ff5d15,stroke-width:2px,color:#1a2e53 classDef success fill:#28a745,stroke:#1a2e53,stroke-width:2px,color:#fff classDef warning fill:#ffc107,stroke:#1a2e53,stroke-width:2px,color:#1a2e53 class A,CC startEnd class B,C,D,E,F,G,H,J,L,O,T,V,X,Y,Z,AA,BB process class I,K,N,Q,S,U decision class O,Y,BB,CC success class P,R warning
Flow Explanation: This flowchart illustrates the complete learning experience, showing how students progress through content, assessments, and achievements in a structured, supportive environment that promotes learning success.

Course Access & Getting Started

How students begin their learning journey by accessing courses and navigating to their first lesson.

1
Dashboard Overview

Students see a personalized dashboard showing their enrolled courses, progress statistics, and recent activity

2
Course Selection

Students choose which course to study from their enrollment list, with clear progress indicators for each course

3
Module Navigation

Students view the course structure organized into modules, with clear indication of which lessons are available to access

User-Friendly Design: The interface is designed to be intuitive and welcoming, helping students feel confident as they begin their learning journey.

Lesson Progression & Content

How students engage with lesson content and progress through the sequential learning structure.

1
Lesson Content Display

Students view rich, multimedia lesson content with professional YITP branding, including text, images, videos, and interactive elements

2
Progress Tracking

Students can track their time spent on lessons and see their overall progress through visual indicators and completion percentages

3
Lesson Completion

Students mark lessons as complete when finished, which automatically unlocks the next lesson in the sequence

4
Sequential Unlocking

New lessons become available only after completing previous ones, ensuring students build knowledge in the proper order

Structured Learning: The sequential progression ensures students master each concept before moving forward, building a solid foundation of knowledge.

Quiz Taking & Assessment

How students complete assessments and receive feedback on their learning progress.

1
Quiz Discovery

Students find quizzes integrated into their lesson sequence, with clear information about requirements and expectations

2
Assessment Experience

Students take quizzes in a focused, distraction-free environment with multiple question types and clear instructions

3
Immediate Feedback

Students receive instant results and detailed feedback, helping them understand correct answers and learn from mistakes

4
Retake Opportunities

Students can retake quizzes if needed, with multiple attempts available to ensure mastery of the material

Assessment Excellence: The assessment system focuses on learning rather than just testing, providing opportunities for improvement and mastery.

Progress Tracking & Analytics

How students monitor their learning progress and access detailed analytics about their performance.

1
Progress Dashboard

Students access a comprehensive dashboard showing their progress across all courses, with visual indicators and completion percentages

2
Learning Analytics

Students view detailed analytics including time spent learning, quiz performance, and learning streaks that motivate continued engagement

3
Achievement Recognition

Students earn badges and achievements for reaching milestones, maintaining learning streaks, and completing challenging content

4
Performance Insights

Students receive personalized insights about their learning patterns and suggestions for improvement based on their performance data

Data-Driven Learning: The analytics system helps students understand their learning patterns and make informed decisions about their study approach.

Course Completion & Certificates

How students complete their courses and receive recognition for their achievements through certificates and credentials.

1
Completion Requirements

Students can clearly see what requirements remain for course completion, including lessons, quizzes, and any final assessments

2
Automatic Completion Detection

The system automatically recognizes when students have met all course requirements and triggers the completion process

3
Certificate Generation

Students automatically receive a professional completion certificate with their name, course details, and completion date

4
Completion Notification

Students receive email notifications celebrating their achievement and providing information about next steps or advanced courses

5
Continued Learning Opportunities

Students are presented with recommendations for additional courses and learning paths to continue their educational journey

Achievement Recognition: The completion process celebrates student success and provides meaningful credentials that recognize their learning accomplishments.