Technical Test for Mid-Level Node.js Developer
Project: Build a Simplified Issue Tracking System
Objective Create a backend API for an issue tracking system with core functionality for managing projects and issues.
Requirements
Technical Stack
- Node.js
- Express.js
- Nosql or Mysql or Sqlite
- Authentication (JWT)
Core Features
-
User Registration and Authentication
- Sign up
- Login
- User roles (Admin, Project Manager, Developer)
-
Project Management
- Create a project
- List projects
- Update project details
- Delete a project
-
Issue Management
- Create an issue
- List issues (with filtering and pagination)
- Update issue status
- Assign issues to users
- Add comments to issues
Technical Requirements
- Implement RESTful API endpoints
- Use JWT for authentication
- Implement role-based access control
- Add input validation
- Include error handling
- Write unit and integration tests (optional)
- Use environment configuration
- Implement logging
Evaluation Criteria
- Code quality and structure
- API design
- Authentication implementation
- Error handling
- Testing coverage
- Database design
- Performance considerations
Optional Bonus Features
- Implement search functionality
- Add webhooks for issue updates
- Docker containerization
Submission Guidelines
- Provide a GitHub repository
- Include a comprehensive README
- Document API endpoints
- Include installation and run instructions
Time Limit
- Recommended completion time: 3-5 days
- Expected working hours: 8-12 hours