Dot Net Developer Assignment
Dot Net Developer 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
2. Functional Requirements
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.
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.
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.