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

Dot Net Developer Assignment

Uploaded by

1268rohan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Dot Net Developer Assignment

Uploaded by

1268rohan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Software Change Request System Assignment

Objective
To assess your abilities in developing a workflow-based application that allows team
collaboration, change tracking, and approval management. This project will test your skills
in designing user roles, CRUD operations, approval systems, and timeline tracking within a
software change request environment.

Assignment Overview
Develop a Software Change Request (SCR) System where any user assigned to a project can
raise a change request. The request will follow a predefined workflow: it must be approved
by a manager, assigned to a developer team, and reviewed by both the manager and the
original request raiser upon completion. The system should support timeline tracking to
keep all stakeholders updated on the change request status.

Requirements

1. Roles and Permissions


- **Requester**: Any user assigned to a project can raise a change request.
- **Manager**: Approves or rejects change requests raised by team members and assigns
them to a development team.
- **Developer**: Assigned to a development team that works on approved change requests.

2. Functional Requirements

a) Change Request Workflow


- **Raise Request**: Users can create and submit a new change request within the project.
- Fields include:
- Title
- Description of the change
- Priority (Low, Medium, High)
- Due Date
- Project (linked to the project this change applies to)
- **Approval Process**: Requests await approval from the assigned manager.
- Managers can approve or reject the request with comments.
- **Assignment to Development Team**: Once approved, the manager assigns the change
request to a development team.
- Teams can consist of one or more developers.

b) Timeline Tracking
- Add a timeline view where users can see each stage of the change request:
- Request Raised (by requester)
- Approved/Rejected (by manager)
- In Development (assigned developers working on it)
- Completed & Submitted for Review (developers submit for review)
- Include estimated start and completion dates for each stage and track actual start and
completion dates.

c) Development and Review


- Development Phase: Assigned developers mark their progress on the task, and update the
timeline with comments and status.
- Submit for Review: Once completed, the developer team submits the request for review.
- Manager and Requester Review: Both the manager and the original requester receive a
notification and review the changes.
- Manager and requester can approve or provide feedback on additional modifications
required.

3. Technical Requirements
- MVC Architecture: Use MVC to structure the project.
- Role-Based Access Control: Implement role-based permissions so only users with
appropriate roles can perform certain actions.
- Database Design: Use SQL (e.g., SQL Server, MySQL) with tables for Users, Roles, Change
Requests, Teams, and Timeline Tracking.
- Timeline Tracking: Store each stage of the request in a timeline, including the request
status, assigned user(s), and start/completion dates.
- Notifications: Add basic notification or email functionality to notify users of request
approvals, assignments, and review completions.
- Frontend: Use a simple front end with Razor views (if using .NET) or a basic HTML/CSS
frontend.

4. Database Design
- Tables to include:
- **Users**: Details on all users, including roles and project assignments.
- **Roles**: Defines role types (Requester, Manager, Developer).
- **ChangeRequests**: Fields for title, description, priority, due date, status, and
timestamps.
- **Teams**: Information on development teams and assigned developers.
- **Timeline**: Tracks stages of each change request (start/completion dates, responsible
user, comments).
- Provide a schema.sql file to set up the database.

5. Bonus Tasks (Optional)


- Implement JWT-based or OAuth2-based authentication for securing the API endpoints.
- Add an analytics dashboard for managers to track the number of requests, average
completion times, and team performance metrics.
- Use AJAX for smooth updates on the change request status in the timeline.
- Implement a Kanban board view for managers to drag and drop tasks between stages
(Backlog, In Development, In Review, Completed).

Submission Instructions
1. Submit a link to your GitHub repository with your project code.
2. Include a README.md file with setup instructions for setting up and testing the project.
3. Document your code thoroughly, and explain any specific design choices.
4. (Optional) Highlight any bonus tasks you completed in the README.md.

Evaluation Criteria
- Architecture: Use of proper MVC structure, database design, and adherence to role-based
access controls.
- Workflow Design: Effectiveness of the change request process flow and user interactions.
- Code Quality: Clean, structured, and well-documented code.
- Timeline Management: Accurate tracking and display of request progress, with
appropriate notifications.
- Bonus Tasks: Additional features and improvements implemented.

You might also like