⚠️ IMPORTANT: AI TOOLS ARE PROHIBITEDCandidates must NOT use AI tools such as Cursor, ChatGPT, GitHub Copilot, or any other AI coding assistants.
Use of AI tools will result in immediate failure of this assessment.
This assessment project is designed to evaluate candidates' frontend development skills using Angular with Vite. The backend is provided and mostly complete, allowing candidates to focus on frontend implementation.
- Node.js with Express
- CORS enabled for frontend communication
- RESTful API with 3 main endpoints
- Angular 17 (standalone components)
- Vite as build tool
- TypeScript
- RxJS for reactive programming
- Angular Router for navigation
- Angular Forms (Reactive Forms)
- Complexity: Medium
- Focus: Data fetching, display, error handling, responsive design
- Estimated Time: 2-3 hours
- Key Skills Tested:
- HTTP client usage
- Component lifecycle
- Error handling
- Responsive CSS
- TypeScript interfaces
- Complexity: Medium
- Focus: Form handling, validation, API integration
- Estimated Time: 2-3 hours
- Key Skills Tested:
- Reactive forms
- Form validation
- HTTP POST requests
- User feedback (loading, errors)
- Form state management
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/health |
Health check |
| GET | /api/charts |
Get all charts |
| GET | /api/charts/:id |
Get chart by ID |
| POST | /api/charts/calculate |
Calculate new chart |
.
├── backend/
│ ├── server.js # Express API (complete)
│ ├── package.json
│ └── .gitignore
│
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── app.component.ts # Main app component
│ │ │ ├── app.routes.ts # Routing configuration
│ │ │ ├── task1/
│ │ │ │ └── task1.component.ts # Task 1 (to implement)
│ │ │ ├── task2/
│ │ │ │ └── task2.component.ts # Task 2 (to implement)
│ │ │ └── services/
│ │ │ └── chart.service.ts # Optional API service
│ │ ├── main.ts # Application bootstrap
│ │ └── styles.css # Global styles
│ ├── index.html
│ ├── vite.config.ts
│ ├── tsconfig.json
│ └── package.json
│
├── README.md
├── ASSESSMENT_INSTRUCTIONS.md
├── QUICK_START.md
└── PROJECT_SUMMARY.md (this file)
-
Code Quality (30%)
- Clean, readable code
- Proper TypeScript usage
- Component organization
-
Functionality (30%)
- All requirements met
- Error handling
- Loading states
-
User Experience (25%)
- Responsive design
- Modern styling
- Good user feedback
-
Best Practices (15%)
- Angular patterns
- Type safety
- Component lifecycle
- Backend is intentionally simple - it's a mock API
- Candidates can use the provided ChartService or implement their own HTTP calls
- Styling approach is flexible (CSS, SCSS, Tailwind, etc.)
- Additional features are welcome if time permits
- Focus should be on frontend implementation quality
- Completed
task1.component.tswith full implementation - Completed
task2.component.tswith full implementation - Git repository with commit history
- Brief summary of implementation approach (optional but recommended)