/pern_administration

A full-stack web application built with PostgreSQL, Node/Express and React that provides a solution for teachers to keep record of their students.

Primary LanguageJavaScript

Teacher Administration Application

About

The solution this web application provides is a simple way for teachers to carry out their administrative tasks in regards to the students that have been registered to them for classes, as well as for students to keep track of the teachers they are enrolled to.

→ Teachers will be able to carry out tasks such as:

  • Create an account to then view a list of students who have created accounts on the application as well that are available to be registered to teachers.
  • Register a specified list of students that have existing accounts to themselves or another teacher.
  • Unregister a specified list of students regardless of whether they are registered to themselves or other 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 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.
  • Delete their account which will unregister them from all respective teachers.

Motivation

The purpose behind creating this project is to show an understanding of the following:

  • Setting up a relational database to fulfill CRUD operations as well as to show knowledge of writing SQL queries.
  • How to create a RESTful API using Node and Express which can run logic based on user interaction to satisfy their administrative needs.
  • 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 to leave it 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)