An automated Time-Table Generator.
The goal of the software application is to provide a possible timetable solution with the minimum number of clashes between slots. It relieves the user of much of the hard work required for generating timetable manually, leaving him with more time to apply the skills and judgment where they are needed in order to produce a timetable of the highest quality.
The software which we are designing can be used by any faculty to generate a timetable in future. This algorithm will satisfy all the hard constraints which are mentioned below:
- A Teacher should have only one class at a time.
- A student should have only one class at a Time.
- There should be no free period between the lectures for a class of students.
- Each class has a fixed number of lectures in a day.
The algorithmic approach which we are going to use in this project is Heuristic Approach. All the hard constraints are dealt with by using Constraint-based Programming.
- MERN Stack
- Bootstrap
- React
- Redux
- MongoDB
- Node.js
- Express.js
Sr. No. | Technology | Version |
---|---|---|
1. | Visual Studio Code | 1.47 |
Sr. No. | Technology | Version |
---|---|---|
1. | MongoDB | 3.6 |
2. | Robo 3T | 1.3 |
Sr. No. | Technology | Version |
---|---|---|
1. | React.js | 16.13.1 |
2. | Node.js | 12.6.0 |
3. | Node-SAAS | 4.14.1 |
4. | Nodemon | 2.0.4 |
5. | Express.js | 4.17 |
6. | Mongoose | 5.9.27 |
7. | bcryptjs | 2.4.3 |
8. | jsonwebtoken | 8.5.1 |
Following are the prerequisits to run this project locally on your machine. If you don't have these prerequisits installed on your computer, run the following commands on your machine.
-
Git You can install it from this link.
-
Visual Studio Code You can install it from the following source by clicking on this link.
-
MongoDB There are two ways to install mongodb locally on your machine.
- By downloading the .msi file, you simply have to run it on your machine and install it on the following location on your
path = c/Users/{You user name}/.
- By downloading the .zip file, you have to unzip the file in the location provided by the path
path = /cUsers/{You user name}/.
And create a mongodb_data folder in the same directory. Click here to download it
-
Robo 3T: It is a GUI for local mongodb database. You can download the community version and install it by clicking here.
-
Node: To download and install the node on your machine click here.
-
Node Package Manager: You can install node package manager by running the following command on power shell.
npm install npm@latest -g
Step 1. Clone the repo: Open Git in the directory where you want to download it and run the following command.
git clone https://github.com/bhoomildayani182/Activity_Scheduling_Automatic_TimeTable_Generator.git
Step 2. Open in Code Editor: To open folder in Visual Studio Code, right click on the folder and click on open with Visual Studio Code.
Step 3. Backend Dev Dependencies: To install all the development dependencies for backend, execute the following commands the terminal.
cd backend
npm install
Step 5. Run Database Server: You have to set the database path in your package.json file. You need to replace the mongod script in scripts in package.json with the following line.
"mongod": "c:/Users/{account username}/mongodb/bin/mongod.exe --dbpath c:/Users/{account username}/mongodb-data"
For example if your account username is Ghous then the script will be like:
"mongod": "c:/Users/Ghous/mongodb/bin/mongod.exe --dbpath c:/Users/Ghous/mongodb-data"
After doing this you need to open a new terminal and execute the following command.
npm run mongod
Step 5. Create Database: Open Robo 3T and create a connection with database. Set the name of connection to scheduly.
Step 6. Install Frontend dev Dependencies: Open new terminal and execute the following command on terminal.
cd frontend
npm install
Step 7. Run Backend Server: To run Backend Server, execute the following commands in order.
cd backend
npm start
Step 8. Run Frontend Server: To run Frontend Server, execute the following commands in order.
cd frontend
npm start
Step 9. Sign in: Once the servers are running, you first need to sign up as the database is empty at the start of the project.
Wishing you best of luck for the Testing phase Cheers :)
Make an issue here.