Giter Club home page Giter Club logo

dbms-project-moment's Introduction

DBMS-Project-moment

Frontend

Client

  • To run the client locally, clone the repo, run npm install followed by npm start.
  • The React application is hosted on port 3000 by default.
  • This app makes extensive usage of Material UI, in an attempt to follow modern design standards and make the UI uniform.

Summarized program flow:

  • An implicit check is performed before the component loads to verify whether a login token exists. This token is part of the JWT based authentication flow implemented in the application. If the token exists and is active, the user is redirected to the Admin or Student home page based on the role associated with the username in the database. Users are also redirected to the corresponding home page automatically after registration.
  • A Student role has the ability to then filter classroom availability by date, timeslot, and room capacity. He can then make a request, which is added to the appropriate collection. Students will also have a very concise view of the entire timetable for a particular day, and can view past requests.
  • An Admin role can view all the pending requests and choose whether to approve or deny them. The Admin can also view all closed requests separately.

Student homepage

  • Students have the ability to filter by the date and timeslot and select a classroom. The list of classrooms they can choose is dynamically filtered by making a database query through the server upon filter application. The request made is added to the room_reqs collection with a default status value of 'pending'.
  • A key feature implemented is the ability for students to view a dynamic timetable for all slots and classrooms for the next seven days. This feature, and a big part of the application is based around the schedule collection. Implementing the timetable and schedule collection was fairly complicated and extremely critical to this application.
  • Students can also view all previous requests made by them (requests filtered by username), and can view the status of those requests.
  • Future expansions will include a way for students to delete pending requests, auto delete duplicate requests, and assign multiple priority levels.

Admin homepage

  • The most important role of the admin is to approve or reject room requests, which will then be reflected instantly in the timetable. Admins can also view the timetable, and have the ability to view all past requests.
  • Future expansions here are student management and the ability to export all the requests as a csv file.

Backend

  • Flask based REST API
  • Dynamically programmed to easily make changes

Endpoints

  • POST /register
  • POST /login
  • GET /schedule
  • POST /schedule
  • GET /user/requests
  • POST /user/requests
  • GET /admin/requests
  • POST /admin/requests

dbms-project-moment's People

Contributors

shagufta24 avatar anantasrikar avatar

Stargazers

FloareDor avatar

Watchers

James Cloos avatar  avatar

dbms-project-moment's Issues

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.