top of page

Python Developer | Sample Assignment

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


bottom of page