This repository contains the source code for a community website project made with .NET/Typescript, organized with modular design principles for better maintainability and scalability. The project includes modules, services, interfaces, middlewares, and extensions.
-
src: Contains all .NET source files.
-
Module Classes: Helper classes with specific functions that dont need a separate service representation.
-
Services: Directory for common services used across multiple modules.
-
Controllers :
- Routers : Handle routing and prerendering of contents
- Api : Api controllers for lazy loading & data fetching
-
Interfaces: Directory for defining interfaces, promoting abstraction and separation of concerns.
-
Middlewares: Directory for custom middlewares used in the project.
-
Extensions: Directory for extension methods or service collection extensions.
-
Repositories : Data access methods.
-
Filters : Action filters for permission management.
- global.ts : Contains global accessible functions imported by submodules
- dedicated modules : Page specific modules to carry around dedicated operations
- interfaces : interfaces to define the shape of incoming DTOs
- appsettings.json: Configuration file containing application settings, connection strings, etc.
- tsconfig.json: TypeScript configuration file.
- Program.cs : Main entry point for configuring services, middleware, and the application pipeline.
- Migrations : SQL files for migrating db schema
- project.csproj: The .NET project file specifying dependencies, references, and other project-related configurations.