Skip to content

Latest commit

 

History

History
225 lines (160 loc) · 10.5 KB

README.md

File metadata and controls

225 lines (160 loc) · 10.5 KB

Schedule-e-Hamdard

Class Scheduler specifically for Universities
Explore the project »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Roadmap
  4. Contributing
  5. Contact
  6. Acknowledgements

About The Project

  • As of now teachers of most Universities doesn't have any medium to schedule classes else than whatsapp. Everything is done on whatsapp groups, for every subject there is a seprate whatsapp group. Which results in creation of multiple group's every semester, teachers have to remember all the sessions they have to take throught the day and are often in confusion at what time to schedule session for a class, if the class is free at that time or not which results in redundant conversation on whatsapp groups.

  • A SAAS product for staff, teacher and students. Where faculty member can assign classes to teachers, teachers can schedule sessions for assigned classes and students can keep track of upcoming sessions


Demonstration

demonstration

User Journey

Admin

AdminFlow

Teacher

teacherFlow

Student

studentFlow

Output Sanpshots

Timetable Calendar

schedule

Teachers Students
teachers students
All Staff Single Staff
staff single-staff
Batches Sections
batches sections

Built With

Written in TypeScript ♥

Getting Started

Follow the instructions to set up the project on your local machine.

Prerequisites

Install NodeJS LTS

  • npm

    npm install npm@latest -g

Installation

  1. Fork the repo(required), a star is also appretiated but optional :P

  2. Clone the forked repo

    git clone https://github.com/{your-github-username}/schedule-e-hamdard.git

    example : git clone https://github.com/yahya-cloud/schedule-e-hamdard.git

  3. Install NPM packages

    npm run install-modules
  4. Start the react and nodejs server concucrrently

    npm run dev

Setting up Frontend

To setup the frontend of application navigate to '/frontend/.env.example', you will see the below given code,

REACT_APP_ALGORITHM = String encrypt/decrypt algo
REACT_APP_IV_LENGTH = Cipher initialization vector
REACT_APP_ENCRYPTION_KEY = Encryption key for example 'this is key'
REACT_APP_SERVER_URL = Server URL default is http://localhost:4000/v1

as this web-app usses Crypto the first three variables are required to decypt/encrypt the string using crypto. Create new file in frontend folder name it ".env", copy paste the content of "exapmle.env" to ".env". Please make sure ALGORITHM, IV_LENGTH, ENCRYPTION_KEY are same as .env vars in backend.

Setting up Backend

This web-app uses MongoDB as its database, so as to setup the backend you need to have mongodb account and cluster. Follow these guide to setup the MongoDB account and cluster. Signup for MongoDB account, Setup MongoDB cluster

After setting up the cluster white list your IP address and generate a connection url. To whitelist your Ip address and genrate connection url follow these guide's Whitelist your Ip address, MongoDB Connection URL

Now to setup the enviorment variables for backend navigate to '/backend/.env.example', you will see the below given code.

  ALGORITHM = string encrypt/decrypt algo
  IV_LENGTH = initialization vector
  ENCRYPTION_KEY = encryption key for example 'this is key'
  PORT = 4000
  JWT_SECRET = any unique string
  CONNECTION_URL = MongoDB account connection url
  CLIENT_URL = Client URL default is http://localhost:3000

As this web-app usses Crypto the first three variables are required to decypt/encrypt the string using crypto. Create new file in backend folder name it ".env", copy paste the content of "exapmle.env" to ".env". Please make sure ALGORITHM, IV_LENGTH, ENCRYPTION_KEY are same as .env vars in frontend.

Roadmap

See the open issues for a list of proposed features (and known issues).

Future Goals

  • Feature to add multiple students and teachers in database by reading excel file
  • Enhancing the login page
  • Add feature to export teacher table and student table as excel sheet.
  • Add group chat feature for every section.
  • Add option to upload photo while saving teachers and students
  • Feature to update teacher, schedule, and student as of now we can only add and delete them
  • Add option to delete Batch, so when we delete batch all sections in that Batch and all students inside each section should also get delted from database
  • Add caching using react query/rtk query in frontend and redis/node-cache in backend
  • Write Unit Test

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Refer to this article if you have any difficulty in making pull request

Contact

Mohd. Yahya - [email protected] , mohammadyahya.in

Project Link: https://taupe-wisp-7f5ba2.netlify.app/


Acknowledgements