Welcome to iScheduler 2.0, this is an improved version (the old version can be found here) of a project I did for my final project during my undergraduate study. The SRS document can be accessed here.
The App is designed specifically for Ethiopian universities and it solves the problem of generating class timetables automatically. I've utilized a genetic algorithm for this purpose and it's very interesting how the algorithm works.
No more manual headaches or conflicting schedules. Our app intelligently balances course offerings, faculty availability, and student preferences to deliver optimized schedules that maximize resources and minimize conflicts.
Before you begin, make sure you have the following installed on your machine:
- Install SQL Server if you haven't already.
- Create a new database for the project. You can do this using SQL Server Management Studio or any other preferred method.
- Update the connection string in
appsettings.json
file in the ASP.NET Core project (scheduling-system/appsettings.json
) to point to your newly created database.
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"
}
- Navigate to the root directory of the Angular project in your terminal or command prompt:
cd ClientApp
2. Run the following command to install the required dependencies:
npm install
3. After the installation is complete, run the following command to build the Angular Client:
npm run build
4. The Angular application should now be built under the dist
directory.
- Navigate to the root directory of the ASP.NET Core project in your terminal or command prompt.
- Run the following command to restore dependencies:
dotnet restore
- Install entity framework globally:
dotnet tool install --global dotnet-ef
4. After the restoration is complete, run the following command to apply any pending migrations and seed data:
dotnet ef database update
5. Once the database is updated, run the following command to start the ASP.NET Core API:
dotnet run
6. The API should now be running on https://localhost:5001 (or http://localhost:5000).
You can now access the application by visiting https://localhost:5001 in your web browser. Your browser might complain about the URL not being secure but you can simply proceed because this is just a development server. Look at the howtouse.md file for more details about using the app.
For those interested in delving deeper into the Genetic Algorithm utilized in our app, I recommend exploring the following research:
[1] S. Parera, H. T. Sukmana and L. K. Wardhani, "Application of genetic algorithm for class scheduling (Case study: Faculty of science and technology UIN Jakarta)," 2016 4th International Conference on Cyber and IT Service Management, Bandung, Indonesia, 2016, pp. 1-5
[2] Ahmad, Izah R., et al. "A heuristics approach for classroom scheduling using genetic algorithm technique." Journal of physics: Conference series. Vol. 995. No. 1. IOP Publishing, 2018.
[3] Saptarini, N. G. A. P. H., I. W. Suasnawa, and P. I. Ciptayani. "Senior high school course scheduling using genetic algorithm." Journal of Physics: Conference Series. Vol. 953. No. 1. IOP Publishing, 2018.