0% found this document useful (0 votes)
6 views

Software Project Management System

The document outlines the design and implementation of a .NET 8-based Software Project Management System for TechPro Solutions, focusing on secure data handling and real-time interaction. It details the system architecture, functional requirements, and technical specifications for a Web API, ASP.NET MVC application, and Blazor WebAssembly application, emphasizing role-based access and robust error handling. The deliverables include a fully functional API, an admin dashboard, real-time task tracking, and comprehensive testing and documentation.

Uploaded by

Siva Ramesh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Software Project Management System

The document outlines the design and implementation of a .NET 8-based Software Project Management System for TechPro Solutions, focusing on secure data handling and real-time interaction. It details the system architecture, functional requirements, and technical specifications for a Web API, ASP.NET MVC application, and Blazor WebAssembly application, emphasizing role-based access and robust error handling. The deliverables include a fully functional API, an admin dashboard, real-time task tracking, and comprehensive testing and documentation.

Uploaded by

Siva Ramesh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Software Project Management System

Duration: 2 Days

Objective: Design and implement a comprehensive .NET 8-based solution encompassing Web API,
ASP.NET MVC, Blazor WebAssembly, JWT Authentication, and SQL Server, with an emphasis on
secure data handling, complex logic, and real-time data interaction.

1. System Overview

1.1. Project Description

A fictional software company, TechPro Solutions, creates custom software projects for its clients. The
company requires a system to manage its clients, projects, and project tracking, ensuring that project
tasks are assigned and tracked efficiently. The system will be designed as a distributed application
with three layers:

• Web API: Acts as the backend and handles all data operations.

• ASP.NET MVC: Used for administrative project management and reporting.

• Blazor WebAssembly: Provides real-time task tracking functionality for developers working
on the projects.

The system will enforce strict security policies, allowing only authenticated users to access project
data, and only administrators will have the privilege to add or modify project data.

2. Functional Requirements

2.1. Data Model

The system will manage three main entities:

1. Client: Represents the clients who have commissioned projects.

o ClientID: Unique identifier for each client.

o ClientName: The name of the client.

o ClientEmail: The client’s email address.

o ClientPhone: Contact number.

o ClientAddress: Physical address of the client.

2. Project: Contains details of the projects assigned by clients.

o ProjectID: Unique identifier for each project.

o ProjectName: The name of the project.

o ClientID: Foreign key linking the project to a client.

o StartDate: The start date of the project.


o EndDate: The projected end date.

o ProjectStatus: The current status(enum) of the project (e.g., "In Progress",


"Completed").

3. ProjectTracking: Tracks progress on specific tasks within a project.

o TrackingID: Unique identifier for each project task.

o ProjectID: Foreign key linking the task to a project.

o TaskName: The name of the task.

o TaskStatus: Status(enum) of the task (e.g., "To Do", "In Progress", "Completed").

o AssignedTo: Developer or team member responsible for the task.

o LastUpdated: Date for the last update to the task.

2.2. Web API Requirements

Build a .NET 8 Web API that performs the following operations:

2.2.1. Basic CRUD Operations

• Client API: Create, read, update, and delete clients.

• Project API: Create, read, update, and delete projects. Link projects to specific clients.

• Project Tracking API: Create, read, update, and delete tasks related to projects.

2.2.2. Additional Logic Requirements

The Web API must provide additional endpoints for complex operations:

• Get Projects Ending Soon: Return a list of projects that are due to be completed in the next
30 days.

• Get Projects with Incomplete Tasks: Return a list of projects that still have incomplete tasks
(tasks not marked as "Completed").

• Get Projects by Client: Return a list of projects filtered by client name, allowing for a
dynamic search functionality.

2.2.3. Security and Role Management

• JWT Token-Based Authorization: The API should implement JWT token authentication. Only
authenticated users should access any endpoints.

• Admin Privileges: Only users with an "Admin" role should be allowed to create or modify any
data (i.e., clients, projects, or tasks). General users will have read-only access to data.

2.2.4. Error Handling & Logging

• Implement robust error handling and logging to ensure the API can handle and log all
exceptions for easier troubleshooting and auditing.

2.2.5. Unit Testing


• Write Unit test cases to for the end points using mock objects for dependencies

2.3. ASP.NET MVC Application Requirements

Develop an ASP.NET MVC application that consumes the Web API and provides administrative access
to manage the following:

2.3.1. Project Dashboard

• The dashboard will display all active projects, including basic information like project name,
client name, start and end dates, and current project status.

2.3.2. Admin Operations

• Admin users can add, edit, or delete clients and projects directly from the MVC application.

• Implement server-side validation for form data (client and project details) to ensure the
integrity of data entered into the system.

2.3.3. Complex Queries in MVC

• Implement a reporting feature that allows administrators to fetch and display projects
nearing their deadline (projects ending within the next 30 days).

• Include pagination, filtering, and sorting functionality in the MVC views to enhance the user
experience when managing large datasets.

2.4. Blazor WebAssembly Application Requirements

Develop a Blazor WebAssembly application that provides real-time task tracking and interaction
capabilities with the Web API.

2.4.1. Task Tracking Page

• The task tracking page will display project tasks based on their status ("To Do", "In Progress",
"Completed").

2.4.2. Admin Privileges

• Only admin users can add or delete tasks. Developers can update the task status.

2.4.3. UI Logic

• Ensure smooth interaction between the Blazor WebAssembly front end and the Web API for
data fetching and updates.

2.4.3. UI Logic

• Apply Client side Validation

2.5. Authentication & Authorization

• Implement JWT-based authentication in both ASP.NET MVC and Blazor WebAssembly apps.
• Enforce role-based access, ensuring that only admins can modify data, while general users
have read-only access.

3. Technical Requirements

3.1. Tools and Technologies

• .NET 8 Web API: For building the RESTful API layer.

• Entity Framework Core: For managing database interactions (code-first approach).

• SQL Server: For storing all the application data.

• ASP.NET MVC: For developing the admin dashboard and project management system.

• Blazor WebAssembly: For building the task tracking interface

• JWT Authentication: For securing the API and ensuring role-based access control.

3.2. Database Design

Use Entity Framework Core Migrations to create the following tables in SQL Server:

• Clients

• Projects

• ProjectTracking

Define the relationships:

• One Client can have many Projects.

• One Project can have many tasks (ProjectTracking).

3.3. Deployment Requirements

• The application should be easily deployable locally on participant machines.

• Ensure all API calls are tested and documented.

• Provide Postman collections for API testing.

4. Non-Functional Requirements

• Security: All APIs must be secured with JWT token authentication. User roles must be
enforced.

• Performance: The system should be able to handle concurrent users, especially in the Blazor
WebAssembly app where real-time notifications are essential.
• Scalability: The solution should be designed in a way that allows easy scaling as the number
of clients and projects grows.

• Maintainability: The codebase should follow clean coding practices, be modular, and ensure
separation of concerns.

5. Deliverables

5.1. Web API Deliverables

• Fully functional .NET 8 Web API with JWT authentication, capable of performing CRUD
operations and complex data queries.

• API documentation (Swagger or Postman) outlining all endpoints and their expected
inputs/outputs.

Global Exception Handling:

• A global exception filter that logs and returns standardized error responses.

5.2. ASP.NET MVC Application Deliverables

• Project management dashboard with role-based access.

• Admin interface to add or update clients and projects.

• Reporting features to fetch and filter projects based on deadlines and incomplete tasks.

5.3. Blazor WebAssembly Deliverables

• Real-time task tracking .

• Proper role-based access to ensure only authorized actions are performed by each user.

5.4. Testing & Documentation

• Include unit tests for key features with MOQ

Provide relevant comment entries

You might also like