This project is a web application designed for managing projects, employees, and documents within a company. It provides functionalities for adding, updating, and deleting projects and employees, as well as managing project-related documents. The application also allows for communication between employees and project management.
To open and run this project, follow these steps:
- Open the solution file in your preferred IDE (Visual Studio, Rider, etc.).
- Locate the
appsettings.json
file and update the connection string with the appropriate values for your database server. - Open the Package Manager Console or Terminal in your IDE.
- Run the command
dotnet ef migrations add [NameOfYourMigration]
to create an initial migration for your database schema. - Run the command
dotnet ef database update
to apply the initial migration and create the database schema. - Build the solution to ensure there are no errors.
- Run the project by pressing the appropriate Run button or by executing the
dotnet run
command in the Terminal.
- Project Management: Add, update, and delete projects with details such as name, start date, end date, priority, and associated employees.
- Employee Management: Manage employee information including first name, surname, middle name, and email address.
- Document Management: Upload and manage project-related documents with name, file path, file type, and associated project.
- Communication: Add and remove employees from projects, view all employees associated with a project, and see all projects of a specific employee.
The project follows a layered architecture with separate components for entities, DTOs (Data Transfer Objects), services, and controllers. The entities represent the database tables, DTOs are used for data transfer between layers, services handle business logic, and controllers manage API endpoints.
- Data Validation: Data validation is implemented using Data Annotations in the entity classes to ensure that required fields are provided and have the correct data types.
- Sorting: Sorting functionality is implemented in the Projects.razor file to allow users to sort projects based on specific criteria.
- Filters: Filtering functionality is available in the Projects.razor file, enabling users to filter projects based on project ID, start date, and priority.
- Error Handling: Error handling is managed in the States folder, where custom error pages are stored. In case of an error, users are redirected to these error pages to provide a better user experience.
Data validation is enforced using Data Annotations in the entity classes. Required fields are marked with the [Required]
attribute, ensuring that essential information is provided when creating or updating entities.
Likewise, it is allowed to filter and sort Projects and Employees!
Click on the column header to sort the projects by that column. Clicking again on the same column header will reverse the sorting order.
If you want to filter the projects, click the "Show Filters" button. It will reveal filter options for Project ID (Min and Max), Start Date (Min and Max), and Priority (Min and Max). Enter the desired filter values and click "Apply Filters" to see the filtered projects.
To reset the sorting, click the "Reset Sorting" button. To reset the filters, click the "Reset Filters" button. You can hide the filters by clicking the "Hide Filters" button.
To sort just click on the column header ^_^
Error handling is crucial for providing a smooth user experience. Custom error pages are stored in the States folder, and users are redirected to these pages in case of an error to ensure that they receive informative feedback and guidance.
You can check all of screenshots in the Project Demonstration file .