This is a class scheduling app for Ethiopian universities that can automatically generate weekly schedules.
# iScheduler 2.0
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.
## Prerequisites
Before you begin, make sure you have the following installed on your machine:
1. .NET Core SDK
2. Node.js and npm
3. Angular CLI
4. SQL Server
## Setting Up the Database
1. Install SQL Server if you haven't already.
2. Create a new database for the project. You can do this using SQL Server Management Studio or any other preferred method.
3. 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.
```json
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"
}
```
## Building the Angular Client
1. 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.
## Running the ASP.NET Core API
1. Navigate to the root directory of the ASP.NET Core project in your terminal or command prompt.
2. Run the following command to restore dependencies:
```
dotnet rest …