Application Details:
Program Manager should be able to perform CRUD(Create, Read, Update & Delete) operations for modules, units and students.
Modules:
Modules are technical or non-technical skills. For example, Python, Databases, Data Analysis etc.
There can be multiple modules in the application.
Module creation: Following details should be required to create a module:
ModuleID: Auto-generated unique ID to identify the module
Module Name: It should be a string with a maximum of 30 characters.
Module Start Date: Data type should be date
Module End Date: Data type should be date
Units: List of all the units in the module.
Units:
These are activities in a module
A unit can be of any of the following types - live sessions, quizzes, assignments..
Please note: In this application, the students will not attend live sessions or write quizzes/assignments. You do not have to implement a quiz or assignment feature.
Unit creation: Following details should be required to create a unit:
Unit Id: Auto-generated unique ID to identify the unit.
Unit Type: Live Session, Quiz, Assignment
Unit Title: It should be a string with a maximum of 100 characters.
Unit Start Date: Data type should be date.
Unit End Date: Data type should be date.
ModuleID: The moduleID of the module this unit will be a part of.
Students:
Students are the users who will be enrolled in one or more modules and can view the list of modules and units.
There can be multiple students in a module. One student can be a part of multiple modules.
Student Creation: Following details should be required to create a student:
Full Name: It should be a string with a maximum of 100 characters.
Mobile Number: It should be a number with exactly 10 digits. The mobile number needs to be unique for a student which means no-two students can have the same mobile number.
Email: It should be a string with a maximum of 100 characters. The email address needs to be unique for a student which means no-two students can have the same email address.
Password: It should be a string with a minimum of 8 characters and a maximum of 16 characters.
ModuleID: The ModuleID of the module in which the student needs to be enrolled.
Program Manager Features:
The program manager should see the following options on login:
Manage Modules
Manage Units
Manage Students
Logout
Manage Modules: When the program manager selects this option they should see the following options:
Create a new module
View all modules - This should show list of all the modules with following details:
ModuleID
Module Name
Module Status: Upcoming, Ongoing or Completed based on the module start and end dates. If module start date is in the future then status will be Upcoming. If the module end date is in the past then the status will be Completed. If the current date is on or in between the start and end date of the module then the status will be Ongoing.
View module details - This should show all module details based on the ModuleID. The details should include the following:
Module Id
Module Name
Module Start Date
Module End Date
Units
Module Status: Upcoming, Ongoing or Completed based on the module start and end dates
Update module - Based on the ModuleID, the program manager should be able to update all the details of a module
Delete module - Based on the ModuleID, the program manager should be able to delete all the details of a module.
Manage Units: When the program manager selects this option they should see the following options:
Create a new unit
View all units - This should show list of all the units with following details:
UnitID
Unit Name
Unit Type
Module Name
View module details - This should show all unit details based on the UnitID. The details should include the following:
UnitID
Unit Name
Unit Start Date
Unit End Date
Module Name
Unit Status: Upcoming, Ongoing or Completed based on the unit start and end dates.
Update unit - Based on the UnitID, the program manager should be able to update all the details of a unit.
Delete unit - Based on the UnitID, the program manager should be able to delete all the details of a unit.
Manage Students: When the program manager selects this option they should see the following options:
Create a new student
View student details - This should show all the details of a student based on the contact number. The details should include the following:
Full Name
Mobile Number
Email
Module Name List
Update student - Based on the contact number, the program manager should be able to update all the details of a student.
Delete unit - Based on the contact number, the program manager should be able to delete all the details of a student.
Student Features:
Student should see following options on login:
View Today’s Schedule - If the current date is between the start and end date of a unit then that unit will be visible in the schedule. This unit should be a part of modules which are enrolled by this student. You will have to show following details:
Unit Name
Unit Type
Module Name
View My Modules
Show a list of all the modules the student is enrolled in
Update Profile
Give an option to update his/her all the details
Logout
Common Functionalities:
Login - Both program manager and student can login to the application.
Registration:
By default create one program manager with following credentials - username: admin and password: admin. There is no functionality to register more program managers.
Students cannot register themselves. The program manager will create a student only then that student can login to the application
If any of the validations fail then show appropriate error messages. For example, if someone tries to enter a name in place of a contact number then an error should be displayed saying, “Please enter a valid contact number”
It is not mandatory to use a database for storing data. You can use either a database or json files.
Comments