A full-stack personal finance management application built using React.js and Node.js. Designed to help users track income, expenses, and manage their financial data efficiently.
The Finance Tracker App was developed as part of a coding interview challenge. It aims to provide users with a platform to manage their finances by tracking income and expenses, offering insights into their financial habits.
- User Authentication: Secure registration and login system.
- Transaction Management: Add, edit, and delete income and expense records.
- Financial Dashboard: View summaries of total income, expenses, and balance.
- Responsive Design: Optimized for both desktop and mobile devices.
- Data Visualization: Charts and graphs to visualize financial data.
- API Integration: Backend API to handle data operations.
- Frontend: React.js, React Router, Axios
- Backend: Node.js, Express.js, SQLite
- Authentication: JWT (JSON Web Tokens)
- Testing: Jest, Supertest
- Styling: CSS, Bootstrap
- Node.js version 16.x or higher
-
Navigate to the
frontenddirectory. -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Start the development server:
npm start
-
Navigate to the
backenddirectory. -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Seed the database:
npm run seed
-
Run tests:
npm run coverage
-
Start the server:
npm start
- Access the frontend at
http://localhost:3000. - Use the backend API for data operations.
- Refer to the
FinanceTrackerApp.postman_collection.jsonfile for API endpoints and testing.
The backend includes unit tests to ensure functionality. Run the following command to execute tests and generate a coverage report:
npm run coverageThe coverage report can be viewed at backend/coverage/index.html.
As a backend developer, I focused on building a robust backend system. The database schema was designed using SQLite for its simplicity and portability. The backend was developed with Node.js and Express.js, ensuring secure authentication with JWT.
The frontend was developed using React.js, with components for user registration, login, and the financial dashboard. While the integration between frontend and backend is incomplete, the foundational work is in place.
- Frontend Integration: Complete the integration between frontend and backend.
- UI Enhancement: Implement a modern UI using component libraries like Next UI.
- Testing: Add unit tests for frontend components using Jest and React Testing Library.
- Code Refactoring: Improve code readability and maintainability.
- Additional Features:
- Implement budgeting functionality.
- Add data export/import capabilities.
- Enhance data visualization with charts and graphs.