Teacher Administration Application

About

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).

Motivation

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.

Screenshots

Include logo/demo screenshot etc.

Tech/framework used

Built with

Features

What makes your project stand out?

Code Example

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.

Installation

Provide step by step series of examples and explanations about how to get a development env running.

API Reference

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.

Tests

Describe and show how to run the tests with code examples.

How to use?

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.

Contribute

Let people know how they can contribute into your project. A contributing guideline will be a big plus.

Credits

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.

Anything else that seems useful

License

A short snippet describing the license (MIT, Apache etc)