https://github.com/waltermillan/lockers
is a basic application for locker rental management. You can create lockers, customers and daily rentals.
https://github.com/waltermillan/lockers
angular csharp dependecy-injection design-patterns docker dto-pattern entity-framework facade-pattern mvc mysql netcore repository-pattern typescript unitofwork-pattern
Last synced: 2 months ago
JSON representation
is a basic application for locker rental management. You can create lockers, customers and daily rentals.
- Host: GitHub
- URL: https://github.com/waltermillan/lockers
- Owner: waltermillan
- Created: 2025-03-01T23:53:33.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-24T23:34:25.000Z (about 1 year ago)
- Last Synced: 2025-06-02T22:03:47.141Z (about 1 year ago)
- Topics: angular, csharp, dependecy-injection, design-patterns, docker, dto-pattern, entity-framework, facade-pattern, mvc, mysql, netcore, repository-pattern, typescript, unitofwork-pattern
- Language: C#
- Homepage:
- Size: 6.45 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ Easy Lockers Management Project
A basic application for locker rental management (classic CRUD).
This project was created to practice full-stack application development, with a focus on clean architecture and the use of design patterns. The app includes two user roles: **Administrator** and **User**, and implements patterns such as: **Facade/Factory**, **Repository**, **DTO**, **Base Entity**, and **Unit of Work**.
---
## ๐
Changelog
- **2025-03-08**: Backend/Frontend/Database โ Initial code upload, database structure, entity-relationship diagram, entities, interfaces, models, and services.
- **2025-03-23**: Added unit tests using **Moq** and **xUnit** packages. Backend/Frontend: Minor bug fixes.
- **2025-04-25**: Version improved by adding popups and HTML table PDF export. Implemented the **Facade/Factory** design pattern on the frontend using the **MatDialog** library.
---
## ๐ฏ Objective
To gain hands-on experience with:
- **.NET (C#)** and **MySQL**
- **Angular (TypeScript)**
- **Design Patterns**
- **Onion Architecture**
- **Entity Framework / Docker**
---
## ๐ Features
### ๐ง Backend
- Based on **Onion Architecture**
- Implements multiple **design patterns**:
- Repository Pattern
- Unit of Work
- Base Entity
- Data Transfer Object (DTO)
- **Key Libraries**:
- **Encryption**:
- `BCrypt.Net-Next`
- `System.Security.Cryptography` (AES-256 encryption)
- **Logging**:
- `Serilog`
- `Serilog.Extensions.Logging`
- `Serilog.Sinks.File`
- **ORM**:
- `Microsoft.EntityFrameworkCore`
- `Pomelo.EntityFrameworkCore.MySql` (for MySQL)
---
### ๐ป Frontend
- Built with **Angular 18.2.14**
- Uses **Angular Material** for modals and UI components:
- `@angular/material`: 18.2.14
- `@angular/animations`: 18.2.13
- `@angular/cdk`: 18.2.14
- Uses **jspdf** and **html2canvas** to export HTML tables to PDF
- Modular project structure
---
### ๐๏ธ Database
- Uses **MySQL**
- Managed via **Docker Desktop** and **DBeaver**
- Includes:
- **DDL scripts** for table creation
- **DML scripts** for sample data
- **Entity Relationship Diagram**
---
## ๐งช Installation
### โ
Prerequisites
Make sure the following tools are installed:
- [.NET SDK 9.0.200](https://dotnet.microsoft.com/)
- [Docker Desktop 4.40.0](https://www.docker.com/products/docker-desktop/)
- [DBeaver Community 25.0.3](https://dbeaver.io/download/)
- [Node.js & npm](https://nodejs.org/) (for the frontend)
---
### ๐ ๏ธ Setup Instructions
1. Clone the repository:
```bash
git clone https://github.com/waltermillan/Lockers.git
```
2. Follow the video guides for full setup:
- [Version 1 Overview](https://youtu.be/y3lp6_5Npe0)
- [Version 2 Overview](https://youtu.be/79U6jyvQDDM)
3. Complete the remaining steps as detailed in the project documentation.
---
## ๐ License
**Free and open-source**