انتقل إلى المحتوى الرئيسي

FileStructure

📁 Project Structure

This project uses the vertical slicing approach, where each feature or domain area is organized into its own folder. This structure improves modularity, scalability, and team collaboration by encapsulating related functionality together.

The result of the ls command at the root of the repository looks like this:

ApplicationPermissions/      Finance/                   obj/                    Restaurant/
ApplicationSettings/ Fonts/ pdf.pdf RestaurantSpendings/
appsettings.json hello.pdf Printers/ SeedData/
Auth/ logo.jpeg Products/ ServerSideEvents/
bin/ Makefile Program.cs Shared/
Checkout/ Management/ ProjectSardine.Api.csproj SystemOperations/
Data/ Mediator/ Properties/ uploadimages/
docker-compose.yml meow.pdf PurchaseInvoices/ UsersLog/
docs/ Middlewares/ receipt.pdf
Files/ Migrations/ Reports/

🗂️ Key Directories and Their Purpose

Directory/FileDescription
ApplicationPermissions/Logic related to the permissions of the application
ApplicationSettings/Configuration settings for the application
Auth/Authentication logic (e.g., JWT, login, registration)
Checkout/Feature-specific code for handling the monitor page
Data/Database context,
Finance/Domain logic related to finance.
Files/File upload/download logic
Management/Corespoands to the frontend management
Mediator/Mediator pattern implementations
Middlewares/Custom middleware components
Migrations/Database migration scripts (EF Core or other ORM)
Printers/Feature code related to handling printing
Products/Product domain: management, listing, etc.
PurchaseInvoices/Handling of invoices and related purchase logic
Reports/Report generation and related logic
Restaurant/Corespoands to the frontend page
SeedData/Seed data files for development/testing
ServerSideEvents/Real-time events (e.g., SSE, WebSockets)
Shared/Shared models, helpers, constants used across features
SystemOperations/System-level tasks(database backup,restore)
UsersLog/Logging user activities
uploadimages/the folder where images uploaded reside

⚙️ Core Configuration and Metadata

FileDescription
appsettings.jsonMain application configuration (used by ASP.NET Core)
docker-compose.ymlDocker service orchestration file
MakefileSimplifies common tasks (e.g., build, run, test)
Program.csMain entry point of the application (ASP.NET Core startup)
ProjectSardine.Api.csproj.NET project file describing dependencies and build configuration