Assignment_ Earnest Data Analytics (2)
Assignment_ Earnest Data Analytics (2)
I've included for you two project assignments. Each must take 24 - 48 hours to complete. So we can set
1.5 weeks as submission time. Candidates can choose either of the one.
Build a full-stack Expense Tracker and Budget Management System where users can register,
log in, and manage their expenses and budgets. The application will allow users to categorize
expenses, set budget limits, and generate reports.
Requirements:
1. Authentication:
○ Implement JWT-based authentication.
○ Create endpoints for user registration and login.
○ Refresh Token Mechanism should be implemented for persistent sessions.
2. Expense Endpoints:
○ Create CRUD (Create, Read, Update, Delete) endpoints for expenses.
3. Budget Endpoints:
○ Create CRUD endpoints for budget limits.
4. Database Schema:
○ Design a SQL schema for users, expenses, and budgets.
○ Implement the schema using a relational database (e.g., PostgreSQL or
MySQL).
Advanced Concepts:
1. Frontend:
○ Use React Hooks effectively.
○ Apply TypeScript interfaces and types for props and state.
○ Integrate charting libraries (e.g., Chart.js, Recharts) for visualizations
(optional).
2. Backend:
○ Implement request validation and error handling.
○ Use TypeScript for type safety in your backend code.
○ Set up environment variables for configuration.
3. Database:
○ Use transactions where necessary.
○ Optimize queries for performance.
○ Implement indexing for faster data retrieval (optional).
○ Create stored procedures for complex queries (optional).
Deliverables:
Build a Task Management System where users can create, read, update, and delete tasks.
Each task should have a title, description, status, and due date. Users should be able to
register, log in, and manage their tasks.
Requirements:
Advanced Concepts:
1. Frontend:
○ Use React Hooks effectively.
○ Apply TypeScript interfaces and types for props and state.
2. Backend:
○ Implement request validation and error handling.
○ Use TypeScript for type safety in your backend code.
○ Set up environment variables for configuration.
3. Database:
○ Use transactions where necessary.
○ Optimize queries for performance.
○ Implement indexing for faster data retrieval (optional).
Deliverables: