IProgram is a comprehensive employee management system with a modern web application built using Angular for the client-side and ASP.NET Core for the backend API.
The project is organized into several main components:
- Client/: Angular frontend application
- src/: Backend API application following Clean Architecture principles
The backend follows a Clean Architecture pattern with the following layers:
- Core/: Contains the domain models, interfaces, and core business logic
- Infrastructure/: Implements interfaces defined in Core and contains external service integrations
- Application/: Contains application-specific logic, DTOs, and features
- Persistence/: Handles data access, repositories, and database-related logic
- Api/: ASP.NET Core controllers and API-specific implementations
- Employee management (CRUD operations)
- Employee data import/export via Excel files
- User authentication and authorization
- Role-based access control
- Reporting capabilities
- College and section management
- .NET 7.0 SDK or later
- Node.js 16+
- Angular CLI
-
Clone the repository:
git clone [repository-url] cd IProgram
-
Install backend dependencies:
cd src dotnet restore
-
Install frontend dependencies:
cd ../Client npm install
-
Backend API:
cd ../src dotnet run
The API will be available at
https://localhost:5001
(orhttp://localhost:5000
in development). -
Frontend Application:
cd ../Client ng serve
The Angular app will be available at
http://localhost:4200
.
API documentation is available through Swagger at https://localhost:5001/swagger
when running the API in development mode.
The application uses JWT (JSON Web Tokens) for authentication. After login, the token should be included in the Authorization header as a Bearer token for API requests.
The API supports file uploads up to 10MB for employee data in Excel format. Files can be uploaded through the /api/employee/upload
endpoint.
- Define models and interfaces in the Core layer
- Implement repository logic in Persistence
- Create application services in Application
- Add API controllers in the Api layer
- Implement UI components in the Client application
- Follow Clean Architecture principles
- Implement proper separation of concerns
- Use dependency injection for service management
- Implement proper error handling and logging
This project is licensed under the MIT License.