0% found this document useful (0 votes)
2 views

Assignment_ Earnest Data Analytics (2)

The document outlines two project assignments: an Expense Tracker and Budget Management System, and a Task Management System, each requiring 24-48 hours to complete. Both projects involve building full-stack applications using React and TypeScript for the frontend and Node.js and TypeScript for the backend, with specific requirements for user authentication, data management, and responsive design. Deliverables include source code, a README file, and an optional deployed application URL.

Uploaded by

ali0995542
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Assignment_ Earnest Data Analytics (2)

The document outlines two project assignments: an Expense Tracker and Budget Management System, and a Task Management System, each requiring 24-48 hours to complete. Both projects involve building full-stack applications using React and TypeScript for the frontend and Node.js and TypeScript for the backend, with specific requirements for user authentication, data management, and responsive design. Deliverables include source code, a README file, and an optional deployed application URL.

Uploaded by

ali0995542
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Hi

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.

Project: Expense Tracker and Budget Management System


Objective:

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:

Frontend (React + TypeScript):

1.​ Authentication Pages: Create login and registration pages.


2.​ Dashboard: Display an overview of the user's financial status, including total
expenses, remaining budget, and a summary of categories.
3.​ Expense Management:
○​ Add a new expense.
○​ Edit an existing expense.
○​ Delete an expense.
○​ Filter expenses by date, category, and amount.
4.​ Budget Management:
○​ Set monthly budget limits for different categories.
○​ Edit and delete budget limits.
5.​ Reports:
○​ Generate monthly and yearly expense reports (CSV or Excel)
○​ Visualize expenses using charts and graphs (optional).
6.​ Responsive Design: Ensure the application is responsive and works on various
devices (Mobile and desktop only, tablet not required).

Backend (Node.js + TypeScript):

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).

Steps to Complete the Assignment:

1.​ Setup Environment:


○​ Initialize a new Node.js project and set up TypeScript.
○​ Initialize a new React project with TypeScript.
2.​ Design Database Schema:
○​ Create tables for users, expenses, and budgets.
○​ Define relationships and constraints.
3.​ Backend Development:
○​ Set up Express server.
○​ Implement authentication endpoints.
○​ Implement expense and budget CRUD endpoints.
○​ Use a database client (e.g., Sequelize, TypeORM) to interact with the SQL
database.
4.​ Frontend Development:
○​ Set up React project structure.
○​ Create authentication pages (login and registration).
○​ Create components for dashboard, expense management, budget
management, and reports.
○​ Connect frontend with backend using Axios or Fetch API.
○​ Integrate charting libraries for reports and visualizations (optional).
5.​ Advanced Features:
○​ Add request validation and error handling in the backend.
○​ Implement responsive design in the frontend.
○​ Optimize database queries and apply indexing (optional).
6.​ Testing and Deployment (optional):
○​ Write unit tests for both frontend and backend (Optional but has weightage
when evaluating).
○​ Deploy the application using a service like Heroku, Vercel, or Netlify.

Deliverables:

●​ Source code for both frontend and backend.


●​ A README file with setup instructions.
●​ Deployed application URL (optional).

Project: Task Management System


Objective:

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:

Frontend (React + TypeScript):

1.​ Authentication Pages: Create login and registration pages.


2.​ Task Dashboard: Display a list of tasks.
3.​ Task Management:
○​ Add a new task.
○​ Edit an existing task.
○​ Delete a task.
○​ Mark a task as completed.
4.​ Responsive Design: Ensure the application is responsive and works on various
devices (only mobile and desktop, tablet not required).

Backend (Node.js + TypeScript):


1.​ Authentication:
○​ Implement JWT-based authentication.
○​ Create endpoints for user registration and login.
○​ Refresh Token Mechanism should be implemented for persistent sessions.
2.​ Task Endpoints:
○​ Create CRUD (Create, Read, Update, Delete) endpoints for tasks.
3.​ Database Schema:
○​ Design a SQL schema for users and tasks.
○​ 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.
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).

Steps to Complete the Assignment:

1.​ Setup Environment:


○​ Initialize a new Node.js project and set up TypeScript.
○​ Initialize a new React project with TypeScript.
2.​ Design Database Schema:
○​ Create tables for users and tasks.
○​ Define relationships and constraints.
3.​ Backend Development:
○​ Set up Express server.
○​ Implement authentication endpoints.
○​ Implement task CRUD endpoints.
○​ Use a database client (e.g., Sequelize, TypeORM) to interact with the SQL
database.
4.​ Frontend Development:
○​ Set up React project structure.
○​ Create authentication pages (login and registration).
○​ Create components for task management (list, add, edit, delete).
○​ Connect frontend with backend using Axios or Fetch API.
5.​ Advanced Features:
○​ Add request validation and error handling in the backend.
○​ Implement responsive design in the frontend.
○​ Optimize database queries and apply indexing (optional).
6.​ Testing and Deployment (optional):
○​ Write unit tests for both frontend and backend (Optional but has weightage
when evaluating)..
○​ Deploy the application using a service like Heroku, Vercel, or Netlify.

Deliverables:

●​ Source code for both frontend and backend.


●​ A README file with setup instructions.
●​ Deployed application URL (optional).

You might also like