A comprehensive ASP.NET Core MVC application for managing enterprise projects, teams, employees, tasks, and financial operations with a robust database-driven architecture.
- Features
- Tech Stack
- Prerequisites
- Installation
- Database Setup
- Configuration
- Project Structure
- Usage
- Screenshots
- License
- Author
- Support
- π Dashboard: Real-time overview of projects, employees, teams, tasks, and financial metrics
- π₯ Employee Management: Complete CRUD operations for employee records with role assignments
- π Project Management: Track projects with budgets, deadlines, status, and descriptions
- π¨βπ©βπ§βπ¦ Team Management: Create and manage teams with member assignments
- β Task Assignment: Assign tasks to teams and track completion status
- π¬ Comments: Add comments and notes to projects for collaboration
- ποΈ Leave Management: Employee leave request tracking and approval system
- π° Invoice Management: Create and track project invoices with automatic calculations
- π Profit Tracking: Monitor project profitability and financial performance
- Repository Pattern: Clean architecture with separation of concerns
- Dependency Injection: Scoped services for repositories
- ADO.NET: Direct database access using Microsoft.Data.SqlClient
- Turkish Localization: Currency formatting in Turkish Lira (βΊ)
- Responsive Design: Bootstrap 5 with modern UI components
- Data Validation: Model validation with DataAnnotations
- Error Handling: Comprehensive error management and logging
- .NET 10 - Latest .NET framework
- ASP.NET Core MVC - Web framework
- ADO.NET - Data access with Microsoft.Data.SqlClient 5.2.2
- C# 13 - Programming language
- Bootstrap 5 - UI framework
- Bootstrap Icons - Icon library
- Razor Views - Server-side rendering
- HTML5/CSS3 - Markup and styling
- Microsoft SQL Server - Primary database
- Integrated Security - Windows Authentication
Before running this project, ensure you have the following installed:
- .NET 10 SDK or later
- Microsoft SQL Server (2019 or later recommended)
- Visual Studio 2026 or Visual Studio Code
- Git (for cloning the repository)
-
Clone the repository
git clone https://github.com/Nuraddin0/Project-Management-System.git cd Project-Management-System -
Restore NuGet packages
cd DatabaseProject dotnet restore -
Build the project
dotnet build
The project includes comprehensive SQL scripts located in the Database folder to set up the complete database schema.
-
Create the database
- Open SQL Server Management Studio (SSMS)
- Connect to your SQL Server instance
- Create a new database named
ProjectDB
CREATE DATABASE ProjectDB; GO USE ProjectDB; GO
-
Execute the SQL scripts in order
Navigate to the
Databasefolder and execute the following scripts:a) Tables.sql - Creates all database tables
Employee- Employee master table with unique username and emailFullTimeEmployee- Full-time employees with monthly salaryHourlyEmployee- Hourly employees with hourly rateProject- Project information with budget and deadlinesTeam- Team structure and detailsTeamMember- Team member assignmentsTaskAssignment- Task assignments to teams and projectsComment- Comments on tasks/projectsLeave- Employee leave requestsInvoice- Project invoices and billingProfit- Project profitability trackingDailyPerformance- Employee daily work hours tracking
b) StoredProcedures.sql - Creates stored procedures for business logic
sp_Hiring_AddFullTime- Add full-time employee with transaction safetysp_Hiring_AddHourly- Add hourly employee with transaction safetysp_Accounting_GenerateInvoice- Generate invoice for hourly employees- And more...
c) Triggers.sql - Creates database triggers for automation
trg_Employee_AutoUpdateDate- Auto-update employee modification timestamptrg_Comment_AutoUpdateDate- Auto-update comment modification timestamptrg_CheckBudgetOverflow- Prevent project expenses from exceeding budgettrg_AssignmentID_Constraint- Validate assignment constraints
- Employee Hierarchy: Supports both full-time and hourly employees with specialized tables
- Transaction Safety: All insert/update operations wrapped in transactions
- Data Integrity: Foreign key constraints and unique constraints on critical fields
- Automatic Timestamps: Triggers automatically update modification dates
- Budget Control: Triggers prevent cost overruns on projects
- Business Logic: Stored procedures encapsulate complex operations
-
Update the connection string
Open
appsettings.jsonand update the connection string to match your SQL Server instance:{ "ConnectionStrings": { "DefaultConnection": "Data Source=YOUR_SERVER_NAME;Initial Catalog=ProjectDB;Integrated Security=True;Connect Timeout=30;Encrypt=True;Trust Server Certificate=True;Application Intent=ReadWrite;Multi Subnet Failover=False;Command Timeout=30" } }Replace
YOUR_SERVER_NAMEwith your SQL Server instance name (e.g.,localhost,(localdb)\\MSSQLLocalDB, or your server name). -
Run the application
dotnet run
-
Access the application
Open your browser and navigate to:
https://localhost:5001(HTTPS)http://localhost:5000(HTTP)
DatabaseProject/
βββ Controllers/ # MVC Controllers
β βββ HomeController.cs
β βββ EmployeesController.cs
β βββ ProjectsController.cs
β βββ TeamsController.cs
β βββ TasksController.cs
β βββ CommentsController.cs
β βββ LeavesController.cs
β βββ InvoicesController.cs
β βββ ProfitsController.cs
βββ Models/ # Data models
β βββ Employee.cs
β βββ Project.cs
β βββ Team.cs
β βββ TaskAssignment.cs
β βββ Comment.cs
β βββ Leave.cs
β βββ Invoice.cs
β βββ Profit.cs
βββ Repositories/ # Repository pattern implementation
β βββ Interfaces/
β β βββ IEmployeeRepository.cs
β β βββ IProjectRepository.cs
β β βββ ITeamRepository.cs
β β βββ ITeamMemberRepository.cs
β β βββ ITaskAssignmentRepository.cs
β β βββ ICommentRepository.cs
β β βββ ILeaveRepository.cs
β β βββ IInvoiceRepository.cs
β β βββ IProfitRepository.cs
β βββ Implementations/
β βββ EmployeeRepository.cs
β βββ ProjectRepository.cs
β βββ TeamRepository.cs
β βββ TeamMemberRepository.cs
β βββ TaskAssignmentRepository.cs
β βββ CommentRepository.cs
β βββ LeaveRepository.cs
β βββ InvoiceRepository.cs
β βββ ProfitRepository.cs
βββ Data/ # Database connection
β βββ DatabaseHelper.cs
βββ Views/ # Razor views
β βββ Home/
β βββ Employees/
β βββ Projects/
β βββ Teams/
β βββ Tasks/
β βββ Comments/
β βββ Leaves/
β βββ Invoices/
β βββ Profits/
β βββ Shared/
βββ wwwroot/ # Static files (CSS, JS, images)
βββ appsettings.json # Configuration
βββ Program.cs # Application entry point
-
- View real-time statistics for all modules
- Quick access to all management sections
- Visual cards with counts and metrics
-
- Navigate to Employees section
- Click Create New to add employees
- View, edit, or delete employee records
- Track employee details, positions, and salaries
-
- Go to Projects section
- Create new projects with:
- Project name and description
- Budget and deadline
- Status tracking
- Monitor project progress and completion
-
- Access Teams section
- Create teams and assign members
- Manage team composition
- Track team assignments
-
- Navigate to Tasks section
- Assign tasks to specific teams
- Link tasks to projects
- Track task completion status
-
- Go to Leaves section
- Create leave requests with:
- Employee selection
- Leave type and dates
- Approval status
- Monitor leave balances
-
- Access Invoices section to create project invoices
- View Profits to monitor financial performance
- Track project budgets vs actual costs
Main dashboard with real-time statistics and overview of all modules
Project listing and management interface
Team creation and member assignment
Task assignment and tracking system
Invoice creation and management
Profit tracking and financial performance metrics
This project is licensed under the MIT License - see the LICENSE file for details.
This repository is created by Nuraddin0
For issues, questions, or suggestions, please open an issue on the GitHub repository.