This project is an intelligent scheduling system that automatically generates optimized class timetables for university departments.
✅ Automatic timetable generation
✅ Conflict-free slots
✅ Multiple courses, instructors, classrooms
✅ REST API for integration
✅ Built with ASP.NET Core Web API + Entity Framework + SQL Server
- C#
- ASP.NET Core Web API
- Entity Framework Core
- SQL Server
- Swagger (for API testing)
- GitHub for version control
Add a screenshot here of Swagger API or your Frontend later!
git clone https://github.com/mo453908/SmartScheduleAPI.git
## 🛠️ Database Structure
Table Description
Department بيانات الأقسام
Course بيانات المواد الدراسية
Instructor بيانات المحاضرين
Classroom بيانات القاعات
Student بيانات الطلاب
Schedule الجداول الدراسية المولدة
ScheduleSlot تفاصيل كل حصة داخل الجدول
⚙️ How to Run the Project
1️- Clone the repository:
git clone https://github.com/mo453908/SmartScheduleAPI.git
cd SmartScheduleAPI/SmartScheduleAPI
2️- Open in Visual Studio or VS Code
3️- Setup the database:
افتح appsettings.json
حدّث الاتصال بقاعدة البيانات:
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=SmartScheduleDb;Trusted_Connection=True;"
}
شغل المايجريشن:
dotnet ef database update
4️- Run the project:
dotnet run
5️- Test the API (Swagger)
https://localhost:<PORT>/swagger
استبدل <PORT> بالرقم الظاهر في البرنامج عند التشغيل
📌 API Endpoints
| Method | Endpoint | Description |
| ------ | ----------------------- | --------------------- |
| GET | /api/schedules | Get all schedules |
| POST | /api/schedules/generate | Generate new schedule |
| GET | /api/schedules/{id} | Get schedule by ID |
| DELETE | /api/schedules/{id} | Delete schedule |
🧑💻 Author
Name: Mohamed Ali Mohamed El-Qenawy
Email: mohamadali7937@gmail.com
GitHub: mo453908
🌟 Future Improvements
إضافة واجهة Frontend (React / HTML)
نظام تسجيل دخول / Authentication
خوارزمية Scheduling أكثر تطورًا
📄 License
MIT License
---
### ✅ بعد ما تكتب كده:
1️⃣ **اعمل Save للملف `README.md`.**
2️⃣ كمل على الـ Git:
```bash
git add README.md
git commit -m "Added README.md"
git push