- Introduction
- Project Structure
- Technologies and Tools
- Sub-solutions Overview
- Roles and Responsibilities
- Benefits of the Patterns and Technologies Used
- Getting Started
- Contributing
- License
The Project Management System is a comprehensive solution designed to facilitate effective project management, resource allocation, and team collaboration. With a focus on usability and scalability, this system aims to enhance productivity by providing powerful tools for managing projects and employees seamlessly.
The project is structured into three primary sub-solutions, each serving a specific function:
- Purpose: Manage employee records, roles, and associated data.
- Features: Employee creation, updates, deletions, and role assignments.
- Purpose: Handle project details, tasks, and team assignments.
- Features: Project creation, updates, task tracking, and department management.
- Purpose: Provide authentication and authorization services across the system.
- Features: User management, JWT token generation, and session handling.
This project employs modern technologies and development practices, including:
- ASP.NET Core 8: For building the back-end services.
- Entity Framework Core: For database interaction.
- JWT (JSON Web Tokens): For secure authentication.
- gRPC: For efficient communication between services.
- Visual Studio Code: IDE for development.
The FCIEmployees solution is responsible for managing employee data, including their roles, personal information, and work-related details. It ensures that all employee records are up-to-date and accessible to authorized personnel.
The FCIProjects solution focuses on project management. It allows project managers to create and manage projects, assign tasks, and monitor progress, ensuring that projects are completed on time and within scope.
The AuthService serves as the central authentication service, handling user login, registration, and session management. It employs JWT for secure token-based authentication, ensuring that only authorized users can access specific functionalities.
The system incorporates three key roles to ensure effective management and security:
- System Admin: Responsible for managing user accounts, permissions, and system settings.
- Project Manager: Oversees project execution, team management, and task assignments.
- Employee: Engages with projects, updates their task status, and submits progress reports.
The chosen technologies and design patterns enhance the system's scalability, security, and maintainability:
- Microservices Architecture: Promotes modularity and independent service deployment.
- JWT for Authentication: Provides a stateless and secure method for user authentication.
- gRPC for Inter-Service Communication: Enables high-performance communication between different services.
To get started with the Project Management System, clone the repository and follow the setup instructions:
git clone https://github.com/yahya511/Project-Management.git
cd Project-Management
# Follow setup instructions for each sub-solution