UNIVERSITY OF WEST ATTICA
SCHOOL OF ENGINEERING
DEPARTMENT OF COMPUTER ENGINEERING AND INFORMATICS
Special Topics in Software Engineering
Vasileios Evangelos Athanasiou
Student ID: 19390005
Spyros Dellaportas
Student ID: 20390054
Supervision
Supervisor: Georgios Prezerakos, Professor
Athens, February 2024
Preze Cinemas Web is a full-stack cinema booking system. This repository contains the back-end API layer and data management services.
The back-end is implemented in C# (.NET 6) and exposes RESTful APIs for:
- User authentication and management
- Movie and hall information
- Ticket reservation and confirmation
- Payment handling
- Integration with front-end UI
The project follows clean architecture principles with separate layers for data, business logic, API controllers, and integration tests.
Front-end development is managed separately: Preze Cinemas Front-End
Back-end/
├── CinemaData/ # Data layer (Entities, DbContext, Migrations)
├── CinemaStore/ # API Layer (Controllers, Business Logic, Models)
├── CinemaStoreIntegrationTests/ # Integration tests for API
├── assign/ # Assignment instructions and reference materials
├── walkthrough/ # Demo walkthrough video
├── .github/ # CI/CD workflows
├── CinemaWebapp.sln # Visual Studio solution
└── README.md| Folder | Description |
|---|---|
CinemaData/ |
Data layer implementing Entity Framework Core ORM, migrations, and entity models (Movie.cs, Hall.cs, User.cs, Reservation.cs) |
CinemaStore/ |
API layer exposing REST endpoints with controllers, DTOs, and business logic services. Uses Dependency Injection for modularity. |
CinemaStoreIntegrationTests/ |
Integration tests for API endpoints using xUnit and Microsoft.AspNetCore.Mvc.Testing |
assign/ |
Course assignment instructions and guidelines |
walkthrough/ |
Demo video showcasing system functionality |
- Target Framework: .NET 6.0
- Packages:
- AutoMapper 12.0.1
- Entity Framework Core 7.0 (SQL Server provider)
- EF Core Tools and Design packages
- AutoMapper Dependency Injection & Expression Mapping
Responsibilities:
- Defining entity models and relationships
- Database migrations
- ORM-based CRUD operations
- Target Framework: .NET 6.0 Web API
- Packages:
- AutoMapper
- MailKit (email notifications)
- Microsoft.AspNetCore.Identity.EntityFrameworkCore
- JWT Authentication
- EF Core (SQL Server)
- Swashbuckle (Swagger/OpenAPI)
Responsibilities:
- Exposing API endpoints for the front-end
- Business logic services for Users, Movies, Reservations, Halls
- DTO mapping using AutoMapper
- Payment & email integration
- Target Framework: .NET 6.0
- Packages:
- xUnit
- Microsoft.NET.Test.Sdk
- Microsoft.AspNetCore.Mvc.Testing
- Coverlet for code coverage
Responsibilities:
- End-to-end integration testing of API controllers
- Validates the interaction between API layer and database
- Dependency Injection: Used throughout all business services and controllers
- ORM Usage: Entity Framework Core (DbContext, Migrations, Fluent API)
- CRUD & REST: Full CRUD operations implemented for all main entities
- Integration Testing: Automated tests to verify controller endpoints and business logic
- Project Management: Organized in sprints with user stories on Trello: Project Board
| Role | Members |
|---|---|
| Back-End | 2 developers |
| Front-End | 2 developers |
- Clone the repository:
git clone https://github.com/Preze-Cinemas-Web/Back-end.git- Open solution in Visual Studio 2022 and restore NuGet packages.
- Update the
appsettings.jsonwith your SQL Server connection string. - Run migrations to create the database:
dotnet ef database update --project CinemaData/CinemaData.csproj- Start the API:
dotnet run --project CinemaStore/CinemaStore.csprojAccess API documentation (Swagger) at:
https://localhost:7236/swagger/index.html
