⚠️ IMPORTANT: DO NOT USE AI TOOLSThis assessment must be completed WITHOUT using AI tools such as Cursor, ChatGPT, GitHub Copilot, or any other AI coding assistants.
If you use AI tools to complete this assessment, you will FAIL.
This assessment is designed to evaluate your personal coding skills, problem-solving abilities, and understanding of Angular and TypeScript. Using AI tools defeats the purpose of this assessment and will result in immediate disqualification.
This is an assessment project for Senior Software Engineer candidates. The project consists of a Node.js backend (mostly complete) and an Angular frontend with two tasks to complete.
.
├── backend/ # Node.js/Express API (mostly complete)
├── frontend/ # Angular application with Vite (tasks to complete)
└── README.md # This file
- Node.js (v18 or higher)
- npm or yarn
- MongoDB (local installation or MongoDB Atlas account)
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create a
.envfile from.env.example:
cp .env.example .env- Update
.envwith your MongoDB connection string:
MONGODB_URI=mongodb://localhost:27017/terri-quintel-astrology- Seed the database with sample data (optional):
npm run seed- Start the backend server:
npm start
# or for development with auto-reload:
npm run devThe backend API will be available at http://localhost:3000
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Start the development server:
npm run devThe frontend application will be available at http://localhost:4200
The backend provides the following endpoints:
GET /api/health- Health check endpointGET /api/charts- Get all astrological charts (supports pagination, filtering, sorting)GET /api/charts/:id- Get a specific chart by IDPOST /api/charts/calculate- Calculate a new birth chartPUT /api/charts/:id- Update a chartDELETE /api/charts/:id- Delete a chart
GET /api/charts/sign/:sign- Get charts filtered by sun signGET /api/charts/stats/summary- Get statistics about charts
page- Page number (default: 1)limit- Items per page (default: 10)sunSign- Filter by sun signisPublic- Filter by public/private (true/false)sortBy- Sort field (default: createdAt)sortOrder- Sort order: asc/desc (default: desc)
See backend/README.md for detailed API documentation.
Location: frontend/src/app/task1/task1.component.ts
Requirements:
- Fetch astrological charts from the API endpoint:
GET /api/charts - Display the charts in a visually appealing card layout
- Each card should show:
- Chart name
- Birth date, time, and location
- Sun sign, Moon sign, and Rising sign
- List of planets with their signs and degrees
- Add loading state while fetching data
- Handle error states gracefully
- Make it responsive for mobile devices
- Add styling to make it look modern and professional
Expected Time: 2-3 hours
Location: frontend/src/app/task2/task2.component.ts
Requirements:
- Create a form with the following fields:
- Birth Date (date picker)
- Birth Time (time input)
- Birth Location (text input)
- Validate all fields are required
- On form submission, send POST request to
/api/charts/calculate - Display the calculated chart result in a nice format
- Show loading state during API call
- Handle errors appropriately
- Reset form after successful submission
- Add form validation messages
- Make the form responsive and user-friendly
Expected Time: 2-3 hours
⚠️ REMINDER: Using AI tools (Cursor, ChatGPT, GitHub Copilot, etc.) will result in immediate failure of this assessment.
Candidates will be evaluated on:
-
Code Quality
- Clean, readable, and maintainable code
- Proper TypeScript usage
- Component structure and organization
-
Functionality
- All requirements are met
- Proper error handling
- Loading states implemented
-
User Experience
- Responsive design
- Modern and professional styling
- Good user feedback (loading, errors, success)
-
Best Practices
- Proper use of Angular features (reactive forms, HTTP client, etc.)
- Component lifecycle management
- Type safety
⚠️ FINAL WARNING: Do NOT use AI tools. Your submission will be reviewed, and use of AI tools will result in immediate disqualification.
Please submit your completed assessment by:
- Pushing your code to a Git repository (GitHub, GitLab, etc.)
- Sharing the repository link
- Including a brief summary of your implementation approach
The backend follows a clean MVC architecture:
- Models: Mongoose schemas (
models/Chart.js) - Controllers: Business logic (
controllers/chartController.js) - Routes: API endpoints (
routes/chartRoutes.js) - Middleware: Validation and error handling
- Database: MongoDB with Mongoose ODM
See backend/README.md for detailed backend documentation.
⚠️ DO NOT USE AI TOOLS - Using Cursor, ChatGPT, GitHub Copilot, or any AI coding assistants will result in immediate failure- The backend uses MongoDB for data persistence - make sure MongoDB is running before starting the server
- The backend is mostly complete - focus your efforts on the frontend tasks
- Feel free to add any additional features or improvements you think would enhance the application
- You can use any Angular libraries or styling approaches you prefer (CSS, SCSS, Tailwind, etc.)
- The deadline for completion is 1-2 days from when you receive this assessment
If you have any questions about the assessment, please don't hesitate to reach out.
Good luck!