Code Monkey home page Code Monkey logo

csc_school_portal's Introduction

CSC-PORTAL

This repository contains the backend functionalities of a Portal Management Software. The software is efficiently designed to streamline communication and information sharing between students, teachers, and administrators. Transcript Generator

Tech Stack

  • Node js
  • Typescript
  • Express
  • Mongoose
  • dotenv
  • Joi
  • Jsonwebtoken
  • Jest
  • SuperTest
  • Bcrypt
  • Morgan
  • Passport

Installation

- Run `npm install ` in your terminal to install packages in package.json
- Create a `.env file` and fill in values for the following variables: - `DATABASE_URI`
- Finally run `npm start` in your terminal

Endpoints

  • Healthcheck: /api/healthcheck [ GET: Server Health Check ]

  • admins: [ POST: Register a new staff] /api/admins/register [ POST: Login a staff] /api/admins/login [ GET: get all staffs] /api/admins [ GET: get a single staff] /api/admins/<id> [ PATCH: update a staff] /api/admins/update [ DELETE: delete a staff] /api/admins/delete

  • classes: [ POST: Create a new class] /api/classes/register [ GET: get all classes] /api/classes [ GET: get a single class] /api/classes/<id> [ PATCH: update a class] /api/classes/update/<id> [ DELETE: delete a class] /api/classes/delete/<id>

  • students: [ POST: Register a new student] /api/students/register [ POST: Login a student] /api/students/login [ POST: Upload a student] /api/students/upload [ GET: get all students] /api/students [ GET: get a single student] /api/students/<id> [ PATCH: update a student] /api/students/update [ DELETE: delete a student] /api/students/delete

  • API Documentation /api/docs [ GET: get API Documentation]

Entity Relationship model

To view the Entity Relationship Diagram (ERM) navigate here

Copyright (c) 2023

csc_school_portal's People

Contributors

okafor-ifeanyi avatar nwachee avatar

Stargazers

Sevastiano avatar

Watchers

 avatar

csc_school_portal's Issues

Refactor Code to TypeScript

Description

Code base should be switched to typescript and be functional on localhost

Use Case

As a developer the endpoints should be functional on Postman and Codebase should be written on typescript

Documentation

Documentation Should be edited to suit the changes made on this issue

test/class

Request Description

This PR would be used to Test all the Class endpoints in the codebase

Use Case

husk Pre-commit runs an npm test after checking the errors, if any test fails the commit fails

Proposed Implementation

No response

[FR] User model refactoring

Request Description

By adding this model I aim to achieve a base point where all users username and password are stored for smooth login.
Then each child user of this class inheritce the _id to make it a part of their model.

Aim ๐Ÿ‘ :

  1. Faster Login. Big O = O(n) ?? Time increases linerarly by number users.
  2. Security by stopping users from querying the model with the password.
  3. Strict Middlewares

Use Case

As an User, I would want to login to my application smoothly
As a Developer, I would be able to fetch any user after login with their user_id stored in their model.

Proposed Implementation

No response

Feat/class/CRUD

Request Description

CRUD - Create, Read, Update, Delete, Login
This endpoint should consist of the endpoints to perform all these functions for the class
This issue sets the base for the class model in which other function will be developed on.

Use Case

As an Admin, I should have the endpoint to Create, Read, Update or Delete a Class

Proposed Implementation

No response

Feat/Admin/Super-endpoints

Request Description

This should include all the functionality that we would want only the super-admin to have, these endpoints would be mostly about restoring deleted items and managing the application

Use Case

As a Super-admin,

  1. Should be able to all existing and deleted instances on this App.
  2. Should be able to track the statistical projection of the App.
  3. Should be able to access all endpoints and access all tables on the db.

Proposed Implementation

No response

[FR] Password Reset

Request Description

  • Password Reset would give users the ability to change their password at will

  • Uploaded students are required to change their password on first login for their is_verified status to be set to True, Without that they would be limited to requests

  • Password Reset would be handled on the User table, users with type of student make sure to set their is_verified status to True after password Verification

Use Case

As a User - Admin, I should be able to change my password on request.
As a User - Student, I should be able to change my password, to be able to use the functionalities of the software.

As a developer - I should make the above happen.

Proposed Implementation

No response

Generate Results

Request Description

This Feat should come with endpoints that can generate a student's result per semester with the provided Ids.
Another Endpoint should be able to generate result for a class
Another endpoint should be capable of taking a class list on a particular course with the student scores, This endpoint now updates the students' scores and, after that then Generate Class results with the Endpoint above

Use Case

As an Advisor I should be able to Generate the result of a Student or Class as a whole

Proposed Implementation

No response

[FR] Documentation - ReadME

Request Description

Update the ReadME FIle to the current state of the project.
Expected to review the roadmap of the project + the existing endpoints and document properly for Incoming Readers

Use Case

As a Reader, I should be able to understand what the project is meant to do and how to use it from scratch.
I should also know what features to expect from the project and check out the postman docs for examples

Proposed Implementation

No response

Feat/students/crud-Auth

Request Description

CRUD - Create, Read, Update, Delete, Login
This endpoint should consist of the endpoints to perform all these functions.
Can Also Include Authentication Login but not majorly or advisable

Use Case

As an Admin, I should have the endpoint to Create, Read, Update or Delete a Student

Proposed Implementation

No response

Feat Result

Request Description

Generate a student result per session and show their GPA

Use Case

As an Advisor I should be able to generate a student or class result, by providing the schema

Proposed Implementation

No response

Feat/admin/crud

Request Description

CRUD - Create, Read, Update, Delete
This endpoint should consist of the endpoints to perform all these functions.
Can Also Include Authentication Login but not majorly or advisable

Use Case

As a User, I should have the endpoint to Create, Read, Update or Delete an Admin
Any admin of my choice for now cause auth hasn't been added yet

Proposed Implementation

No response

Feat/test/admin

Request Description

This PR would be used to Test all the Admin endpoint in the codebase

Use Case

husk Pre-commit runs an npm test after checking the errors, if any test fails the commit fails

Proposed Implementation

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.