ExpenseXpress - An expense tracker and invoice generator
https://expense-xpress.vercel.app/
- Introduction
- Prerequisites
- Getting Started
- Clone the Repository
- Install Dependencies
- Set Up Environment Variables
- Run the Application
- Features
- Expense and Income Tracking
- Invoice Generation
- Running Tests
- License
This application is an expense tracker and invoice generation tool that allows users to input their expenses and income, categorize them, and generate invoices when needed. It is built using Next.js (TypeScript), Tailwind CSS, and Redux.
Before you begin, ensure you have met the following requirements:
- Node.js (version 20.0.0)
- npm (version 9.6.4)
- Git (version 2.39.3)
- TypeScript (version 5.5.3)
- Redux Toolkit (version 2.2.6)
- React (version 18.3.1)
- React-dom (version 18.3.1)
- React-redux (version 19.1.2)
- Next.js (version 14.2.5)
Follow these instructions to set up and run the application locally.
Clone the repository to your local machine using the following command:
git clone https://github.com/Blackie01/ExpenseXpress.git
cd expensexpress
Install the required dependencies using npm:
npm install
Create a .env.local file in the root directory of the project and add the necessary environment variables. Below is an example of the variables you might need:
NEXT_PUBLIC_API_ENDPOINT=http://localhost:3000/api
Start the development server with the following command:
npm run dev
Open your browser and navigate to http://localhost:3000 to see the application in action.
There are two major features of the application
This allows users to make entries of their day-to-day expenses and automatically calculates where the bulk of their money goes, as well as their balance
This allows users to create invoices they can download as pdf.
The test suite is written in Jest. To run the tests, first set up Jest locally:
npm install -D jest jest-environment-jsdom @testing-library/react @testing-library/jest-dom
then, cd to the project folder, and run
npm run test
This project is licensed under the MIT License.