Skip to content

Enterprise-grade Project Management System built with ASP.NET Core MVC (.NET 10) and MSSQL Server. Manage projects, teams, employees, tasks, and finances.

License

Notifications You must be signed in to change notification settings

Nuraddin0/Project-Management-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Project Management System

A comprehensive ASP.NET Core MVC application for managing enterprise projects, teams, employees, tasks, and financial operations with a robust database-driven architecture.

.NET MSSQL Server License

πŸ“‹ Table of Contents

✨ Features

Core Modules

  • πŸ“Š 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

Technical Features

  • 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

πŸ› οΈ Tech Stack

Backend

  • .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

Frontend

  • Bootstrap 5 - UI framework
  • Bootstrap Icons - Icon library
  • Razor Views - Server-side rendering
  • HTML5/CSS3 - Markup and styling

Database

  • Microsoft SQL Server - Primary database
  • Integrated Security - Windows Authentication

πŸ“¦ Prerequisites

Before running this project, ensure you have the following installed:

πŸš€ Installation

  1. Clone the repository

    git clone https://github.com/Nuraddin0/Project-Management-System.git
    cd Project-Management-System
  2. Restore NuGet packages

    cd DatabaseProject
    dotnet restore
  3. Build the project

    dotnet build

πŸ—„οΈ Database Setup

The project includes comprehensive SQL scripts located in the Database folder to set up the complete database schema.

Quick Setup

  1. 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
  2. Execute the SQL scripts in order

    Navigate to the Database folder and execute the following scripts:

    a) Tables.sql - Creates all database tables

    • Employee - Employee master table with unique username and email
    • FullTimeEmployee - Full-time employees with monthly salary
    • HourlyEmployee - Hourly employees with hourly rate
    • Project - Project information with budget and deadlines
    • Team - Team structure and details
    • TeamMember - Team member assignments
    • TaskAssignment - Task assignments to teams and projects
    • Comment - Comments on tasks/projects
    • Leave - Employee leave requests
    • Invoice - Project invoices and billing
    • Profit - Project profitability tracking
    • DailyPerformance - Employee daily work hours tracking

    b) StoredProcedures.sql - Creates stored procedures for business logic

    • sp_Hiring_AddFullTime - Add full-time employee with transaction safety
    • sp_Hiring_AddHourly - Add hourly employee with transaction safety
    • sp_Accounting_GenerateInvoice - Generate invoice for hourly employees
    • And more...

    c) Triggers.sql - Creates database triggers for automation

    • trg_Employee_AutoUpdateDate - Auto-update employee modification timestamp
    • trg_Comment_AutoUpdateDate - Auto-update comment modification timestamp
    • trg_CheckBudgetOverflow - Prevent project expenses from exceeding budget
    • trg_AssignmentID_Constraint - Validate assignment constraints

Database Features

  • 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

βš™οΈ Configuration

  1. Update the connection string

    Open appsettings.json and 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_NAME with your SQL Server instance name (e.g., localhost, (localdb)\\MSSQLLocalDB, or your server name).

  2. Run the application

    dotnet run
  3. Access the application

    Open your browser and navigate to:

    • https://localhost:5001 (HTTPS)
    • http://localhost:5000 (HTTP)

πŸ“‚ Project Structure

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

πŸ’‘ Usage

  • Dashboard

    • View real-time statistics for all modules
    • Quick access to all management sections
    • Visual cards with counts and metrics
  • Employee Management

    1. Navigate to Employees section
    2. Click Create New to add employees
    3. View, edit, or delete employee records
    4. Track employee details, positions, and salaries
  • Project Management

    1. Go to Projects section
    2. Create new projects with:
      • Project name and description
      • Budget and deadline
      • Status tracking
    3. Monitor project progress and completion
  • Team Management

    1. Access Teams section
    2. Create teams and assign members
    3. Manage team composition
    4. Track team assignments
  • Task Assignment

    1. Navigate to Tasks section
    2. Assign tasks to specific teams
    3. Link tasks to projects
    4. Track task completion status
  • Leave Management

    1. Go to Leaves section
    2. Create leave requests with:
      • Employee selection
      • Leave type and dates
      • Approval status
    3. Monitor leave balances
  • Invoice & Profit Tracking

    1. Access Invoices section to create project invoices
    2. View Profits to monitor financial performance
    3. Track project budgets vs actual costs

πŸ–ΌοΈ Screenshots

  • Dashboard

Home Screen Main dashboard with real-time statistics and overview of all modules

  • Projects Management

Projects Project listing and management interface

  • Team Management

Teams Team creation and member assignment

  • Task Assignments

Task Assignments Task assignment and tracking system

  • Invoice Management

Invoices Invoice creation and management

  • Financial Details

Financial Details Profit tracking and financial performance metrics

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ‘€ Author

This repository is created by Nuraddin0

πŸ“§ Support

For issues, questions, or suggestions, please open an issue on the GitHub repository.


About

Enterprise-grade Project Management System built with ASP.NET Core MVC (.NET 10) and MSSQL Server. Manage projects, teams, employees, tasks, and finances.

Topics

Resources

License

Stars

Watchers

Forks