Class Scheduler specifically for Universities
Explore the project »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
-
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
Teachers | Students |
---|---|
All Staff | Single Staff |
---|---|
Batches | Sections |
---|---|
Written in TypeScript ♥
Follow the instructions to set up the project on your local machine.
Install NodeJS LTS
-
npm
npm install npm@latest -g
-
Fork the repo(required), a star is also appretiated but optional :P
-
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
-
Install NPM packages
npm run install-modules
-
Start the react and nodejs server concucrrently
npm run dev
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.
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.
See the open issues for a list of proposed features (and known issues).
- 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
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Refer to this article if you have any difficulty in making pull request
Mohd. Yahya - [email protected] , mohammadyahya.in
Project Link: https://taupe-wisp-7f5ba2.netlify.app/