In this phase, we would like to implement a course catalog. Each course has its own name and a short description to make it clear what it is about. Users will be able to browse the course offerings and click on individual courses for more information. Courses are publicly available, without the need for user registration.
The app should be in line with our company brand manual, which you can find at this link.
/courses, where all available courses will be displayed.
/courses/:uuid with additional
information that is not visible on the course list and will be added in later stages. uuid is a
unique identifier for the course.
/login page.
/dashboard page, where the instructor manages courses as described above.
/login, where they will have the option to log in.
The lecturer will be the only user who will manage the courses. Registration is not yet available, so please include this fixed lecturer account with the following login credentials:
Username:
lecturerPassword:
TdA26!
After logging in, the lecturer will have access to controls where they can:
Info: we will also want to address registration later on, so keep that in mind when designing the application.
Without any data, the website itself would be quite empty. That is why it’s necessary to implement a backend – the part of the application that runs operations that a basic user shouldn’t be able to and provides data for the frontend (the frontend is the part of the application that the user can interact with directly).
Your task will be to implement a REST API that will enable the management of courses, their materials, and activities (e.g., quizzes).
We have prepared the entire API specification for you in OpenAPI format – in it you will find a detailed description of all available endpoints, what data they expect, and what they return. The specification is in the form of a YAML file, which you can simply download and upload to an online visualizer such as Swagger.
This specification contains the minimum API endpoints that your application must contain in order to pass the automated tests. It’s up to you if you want to extend it in any way.
Application data needs to be stored somehow, so you should implement a database[?] into your application that will store records of courses, materials, and activities. If you are a beginner, we recommend using one of the simpler database systems, such as SQLite or MySQL.
It is important to keep in mind that databases running inside our system will not be persistent. This means that when you restart the application or upload a new version, all data will be lost. We therefore strongly recommend that you automatically upload a set of basic data (so-called seeding) to the database when you start the application so that you don't have to add everything manually each time. Of course, this is not a problem if you use an externally hosted database.