1. Introduction & Project Overview
The purpose of this document is to clearly define the features, functionality, and requirements for the development of a mobile application that provides MCQ-based tests, study materials, push notifications, timed exams, and coupon-based access restrictions. The product aims to help students prepare for exams by practicing MCQs, tracking their performance, and accessing restricted sections through coupons.
Key Objectives:
• Deliver an engaging, user-friendly MCQ-based learning platform.
• Provide a flexible content management system for uploading MCQs, PDFs, and other resources.
• Allow access control through coupons and device-level restrictions.
• Log user actions such as test performance, device usage, and screenshots taken.
The final product should be stable, secure, and performant. This document should serve as a guide for developers, testers, and UI/UX designers.
________________________________________
2. Technology Stack (Suggested)
Frontend (Mobile App):
• React Native or Flutter
FOR IOS AND ANRDOID BOTH
Backend:
• PHP-based RESTful API (e.g., Laravel or a custom MVC framework).
• MySQL or PostgreSQL as the primary database.
Deployment/Infrastructure:
________________________________________
3. User-End Features
3.1 Front-End UI Layout:
• Top Slider: A carousel at the top of the home screen to display images or short promotional videos (admin-uploadable).
• Sections & Sub-Sections Below Slider: Organized categories of content (e.g., MCQs by Speciality, by Subject/Systems, PDFs in guess papers, etc.).
3.2 MCQ Feature:
• MCQ Attempt Workflow:
1. User selects a category/section and then a test.
2. Each MCQ is displayed with multiple options.
3. Once the user selects an answer, the correct answer is immediately revealed.
• Wrong Answers Repository:
• After completing a test, all incorrectly answered MCQs are added to a “Wrong MCQs” section.
• Each MCQ in this "Wrong MCQs" section shows only the statement and correct option (no distractors), enabling the student to quickly memorize the correct answers.
• A delete button allows the user to remove MCQs from this repository once they have been "crammed" or mastered.
• Re-Test Feature:
• A separate “Re-Test” mode that only serves up previously missed MCQs.
• MCQs remain in this re-test pool until the user answers them correctly in re-test mode. Once answered correctly, they can be optionally removed from this pool.
3.3 Performance & Statistics:
• A "Statistics" or "My Performance" section to show:
THIS WILL APPEAR BELOW SLIDER AND WILL SHOW PROGRESS OF RECENT ATTEMPTED MCQS
• Score history for each test taken.
• Number of MCQs attempted, number correct, and improvement over time.
• Average time spent per MCQ, if relevant.
3.4 Push Notifications:
• Users receive push notifications for:
• New test availability.
• Reminders about the approaching exam date.
• New study material uploads.
• Promotional updates.
3.5 Timer (Days Left):
• A red bar (or banner) always visible in the app (e.g., at the top or in the sidebar) showing the number of days left until the exam.
• This value is updated from the admin panel.
3.6 Content Access & Restrictions:
• Default free sections accessible to all.
• Restricted sections prompt the user to enter a coupon if not previously authorized.
• Once a coupon is entered and tied to the user's device IMEI, the user can access the restricted content as per the coupon's permissions.
________________________________________
4. Admin-End Features
4.1 Admin Dashboard:
• Secure login for admins.
• Role-based access control (if multiple admins are required).
4.2 Push Notifications:
• Ability to create and send push notifications to all users or segmented user groups.
• Template-based notifications or custom messages.
4.3 MCQ Management:
• Bulk Upload of MCQs in GIFT, AIKEN, or CSV formats.
• Parsing and validation of uploaded MCQs.
• Each MCQ should have:
• Question text.
• Multiple answer options with one correct option.
• Metadata: Section, Sub-section, Speciality/Subject/System.
• Access Level: Free or Restricted.
• Edit, delete, or re-categorize MCQs post-upload.
4.4 Section & Sub-Section Management:
• Create hierarchical sections and sub-sections (e.g., “Guess Papers” -> “Biology”).
• Assign MCQs, PDFs, and other resources to each section/sub-section.
• Mark sections as Free or Restricted.
4.5 Exam Timer Management:
• Set the “Days Left” for the exam countdown.
• Ability to update this counter anytime.
4.6 Coupon Generation & Management:
• Generate various types of coupons for:
• Full Access.
• Guess Papers access.
• Specific MCQ sets.
• Access to PDF files.
• Set coupon expiry date.
• Once redeemed, a coupon ties to the device IMEI.
• Attempting to use the same coupon on a different device shows an error: “Coupon was issued to another device.”
• Admin can upgrade or downgrade permissions of a coupon. For example, initially giving guess paper access, later adding MCQ & PDF access.
4.7 User-Level Access Control:
• Ability to restrict individual user sections:
• Admin can view a user’s phone number and directly limit access to certain sections.
• If a user attempts to access a restricted section without proper coupon, show error: “Please buy coupon to access this section.”
4.8 Logs & Analytics:
• View student usage logs:
• Sort by usage time (descending).
• Track users who have attempted to use coupons multiple times.
• Screenshot logs: If user takes a screenshot, a hidden log entry should be stored. Display total screenshots taken per user (descending).
• Export logs in CSV format for further analysis.
________________________________________
5. Data Models (Example Schema)
User Table:
• id, phone_number, imei, name, coupon_id, created_at, updated_at
MCQ Table:
• id, question_text, options (JSON), correct_option, section_id, restricted (bool), created_at, updated_at
Sections Table:
• id, name, parent_id (for sub-sections), restricted (bool), created_at, updated_at
Coupons Table:
• id, coupon_code, permissions (JSON), expiry_date, linked_imei, created_at, updated_at
Logs Table:
• id, user_id, action_type (e.g., “mcq_attempt”, “screenshot”, “coupon_attempt”), description, timestamp
Exam Timer Table:
• id, days_left, updated_at
________________________________________
6. UI/UX Design Considerations
• The top slider should be visually appealing, with smooth transitions.
• Clear differentiation between free and restricted content.
• Intuitive navigation: Tabbed navigation or a bottom nav-bar for MCQs, Statistics, Notifications, and Account.
• Prominent “Re-Test” and “Wrong MCQs” sections for quick accessibility.
• Elegant design for logging and usage pages in the admin panel, with clear sorting and filtering tools.
• Error messages should be user-friendly and instructive.
Additional Design Thoughts:
• Use color coding: e.g., red for restricted content, green for correct answers, amber/yellow for wrong MCQs.
• Incorporate graphical representations of statistics (bar charts, line graphs).
• Include a progress bar or visual aid on MCQ attempts.
________________________________________
7. Error Handling & Validation
User-End:
• If user tries to access restricted content without a valid coupon:
• Show a pop-up: “Please buy coupon to access this section.”
• If network requests fail:
• Show a retry prompt or a cached version of previously accessible data.
• Invalid coupon entry:
• Show message: “Invalid or Expired Coupon.”
• Attempt to use coupon on a different device:
• Show message: “Coupon was issued to another device.”
• Invalid MCQ uploads or server errors:
• Graceful fallback: show a message “Unable to load MCQs. Please try again later.”
Admin-End:
• Invalid file format or errors in MCQ upload:
• Show error highlighting which lines failed and why.
• Invalid coupon generation attempts (missing expiry date or permissions):
• Display form validation errors.
Logging & Alerts:
• On server-side errors or exceptions, log details to error logs.
• If screenshot detection triggers multiple times for suspicious activity:
• Admin can be alerted via a dedicated “Security” tab or email notification.
________________________________________
8. Security Considerations
• All API calls must be authenticated and authorized.
• Use HTTPS for all data transmission.
• Sensitive data (coupons, user IMEI) should be hashed or encrypted where applicable.
• Validate all input on server-side to prevent SQL injection or XSS.
• Rate-limit user requests to prevent abuse.
________________________________________
9. Additional Features & Future Enhancements
• Implement caching for frequently accessed MCQs to reduce load times.
• Add user badges or gamification features for high scorers.
• Integration with payment gateways for purchasing coupons directly from the app.
• Offline mode for previously downloaded MCQs.
________________________________________
10. Acceptance Criteria
• The mobile app should run smoothly on both Android and iOS platforms (or at least on Android initially).
• The admin panel should allow full CRUD (Create, Read, Update, Delete) operations on MCQs, sections, coupons, and logs.
• The push notifications should reach 90%+ of active devices.
• All restricted access logic and coupon validation should function as described.
• Error handling should provide clear feedback and loggable events.
________________________________________
11. Conclusion
This product development document serves as a detailed blueprint. By following these specifications, the development team should be able to produce a robust, user-friendly, and secure application. Communication between developers, designers, and the product manager is encouraged to refine the scope and handle edge cases.