This web application provides teachers a way to keep track of students and to carry out administrative tasks in regards to them such as registrations and suspensions, as well as a way to communicate with students through notifications which students can view on their homepage.
→ Teachers will be able to do the following:
- Create an account to then be redirected to their teacher homepage that will display all their registered students and access to all administrative features.
- Register a specified list of students to a specified list of teachers.
- Unregister a specified list of students from a specified list of teachers.
- Retrieve a list of registered students that are common between a specified list of teachers.
- Suspend a specified list of students which will stop them from being able to receive messages from teachers, but they will remain registered to their respective teachers unless a teacher decides they should be unregistered completely.
- Send messages to students that have to satisfy the following:
- are NOT suspended.
- are either registered to them OR have been @mentioned.
→ Students will be able to do the following:
- Create an account which they will be able to log into and see which teachers they have been registered to.
- View whether they have been either been suspended or unregistered from one or multiple teachers.
- View messages that they have received from teachers they are registered to or by teachers who have @mentioned them (in the case they are not suspended).
The reason for creating this project is to show I have an understanding of the following:
- How to create a RESTful API using Node and Express which can run logic based on user interaction.
- Setting up a relational database to fulfill CRUD operations as well as to show knowledge of writing SQL queries.
- How to utilize Authentication and Authorization to expose different types of users to different functionality.
- How to utilise a design pattern such as MVC to add structure and modularity to the backend code so it is easier to maintain.
- How to create a user-friendly UI using React.
Include logo/demo screenshot etc.
What makes your project stand out?
Show what the library does as concisely as possible, developers should be able to figure out how your project solves their problem by looking at the code example. Make sure the API you are showing off is obvious, and that your code is short and concise.
Provide step by step series of examples and explanations about how to get a development env running.
Depending on the size of the project, if it is small and simple enough the reference docs can be added to the README. For medium size to larger projects it is important to at least provide a link to where the API reference docs live.
Describe and show how to run the tests with code examples.
If people like your project they’ll want to learn how they can use it. To do so include step by step guide to use your project.
Let people know how they can contribute into your project. A contributing guideline will be a big plus.
Give proper credits. This could be a link to any repo which inspired you to build this project, any blogposts or links to people who contrbuted in this project.
A short snippet describing the license (MIT, Apache etc)