Nice 🔥 Adding a custom contributors badge at the top will make your repo look polished and professional. Here’s the final README with the Credits badge added:
An intuitive and efficient Library Management System built with .NET technologies. EasyLibrary simplifies day-to-day library operations, providing features for managing books, members, transactions, reservations, and user roles. It eliminates the challenges of manual library management by automating key processes and offering a modern, user-friendly interface.
- Book Management – Add, edit, and delete book records (title, author, ISBN, category, availability).
- Member Management – Register and manage members, track borrowing history, and handle reservations.
- Borrowing & Returns – Record book loans with due dates and return tracking.
- Reservation System – Enable members to reserve books and manage waitlists.
- User Authentication & Roles – Secure access with login and role-based permissions.
- Reports & Analytics – Generate insights such as most borrowed books, member activity, and overdue items.
- Database Integration – Uses Entity Framework Core for clean, efficient database interaction.
- Dummy Data Support – Insert sample data for quick testing and demos.
- DTOs (Data Transfer Objects) – Decouples database models from UI for maintainability.
- Asynchronous Operations – Improves performance and responsiveness.
- Eager Loading – Optimized queries to prevent lazy loading pitfalls.
-
Frontend: WinForms (Windows Forms UI)
-
Backend: .NET 8 with C#
-
Database: SQL Server with EF Core (Entity Framework Core ORM)
-
Core Libraries:
EasyLibrary.DAL→ Entities & Data Access LayerEasyLibrary.Core→ Services, repositories, business logicEasyLibrary.WinForms→ Presentation layer (forms & UI)
-
Tools: Visual Studio, NuGet, EF Core Tools, Git
- Visual Studio with .NET Desktop Development workload
- .NET SDK
- SQL Server + SSMS
- EF Core CLI tools installed
-
Clone the Repository
git clone https://github.com/RealAhmedOsama/EasyLibrary.git cd EasyLibrary -
Open in Visual Studio Launch
EasyLibrary.sln→ NuGet packages will restore automatically. If not, right-click the solution → Restore NuGet Packages. -
Update Database Connection Edit
Database/AppDbContext.csto match your SQL Server instance:protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("Data Source=YOUR_SERVER;Initial Catalog=EasyLibrary;Integrated Security=True;Trust Server Certificate=True"); }
-
Apply Migrations
Add-Migration InitialCreate Update-Database
- Build Solution →
Ctrl+Shift+Bor Build → Build Solution - Set Startup Project → Right-click
EasyLibrary.WinForms→ Set as Startup Project - Run → Press
F5(starts withLoginForm)
👉 Default admin credentials are auto-inserted if dummy data is enabled in Program.cs.
Comment out DummyDataService.InsertDummyDataAsync() if not needed.
- Login – Enter valid credentials (default admin available with dummy data).
- MainForm – Navigate between modules: Book Management, Members, Borrowing, Reservations.
- Data Operations – Manage records with simple CRUD forms.
- Reports – View borrowing activity, popular books, and overdue logs.
EasyLibrary/
├── EasyLibrary.sln
├── EasyLibrary/
│ ├── Database/
│ │ └── AppDbContext.cs
│ ├── WinForms/
│ │ ├── MainForm.cs
│ │ ├── Program.cs
│ │ ├── Auth/LoginForm.cs
│ │ ├── BookManagement/BookManagementForm.cs
│ │ ├── BorrowTransactions/BorrowTransactionsForm.cs
│ │ └── ...
├── EasyLibrary.Core/
│ ├── Repositories/
│ │ ├── GenericRepository.cs
│ │ ├── BookRepository.cs
│ │ ├── MemberRepository.cs
│ │ ├── BorrowTransactionsRepository.cs
│ │ └── ...
│ ├── Helper/DtoMapper.cs
│ └── ...
├── EasyLibrary.DAL/
│ ├── Entities/
│ │ ├── Book.cs
│ │ ├── Category.cs
│ │ ├── Member.cs
│ │ ├── User.cs
│ │ ├── Role.cs
│ │ └── ...
This project was developed collaboratively with shared and individual contributions:
- Ahmed Osama – Focused on Indexing and Constraints in DAL, worked extensively on the Core layer, and developed the WinForms UI independently.
- Roudina Ahmed – Worked on the Data Access Layer (DAL) and Core layer side by side with Ahmed Osama.
Licensed under the MIT License. See the LICENSE file for details.
👨💻 Developed by Ahmed Osama 📧 Reach me via GitHub Issues
💖 Thanks for checking out EasyLibrary! If you like it, don’t forget to ⭐ the repo!