FlowTrack is a powerful and intuitive open-source API for a personal finance tracker application, designed to help you manage your finances with ease. Built with a modern tech stack, it provides a secure, scalable, and feature-rich backend for all your financial tracking needs.
- User Authentication: Secure user registration and login with JWT-based authentication, including Google OAuth2 integration.
- Wallet Management: Create, read, update, and delete wallets to manage your cash, bank accounts, and e-wallets.
- Category Management: Organize your transactions with customizable categories for income and expenses, including bulk creation.
- Transaction Tracking: Record your income and expenses with support for recurring transactions and AI-powered transaction creation from text.
- Budgeting: Set monthly budgets for different categories and track your spending to stay on top of your financial goals.
- Financial Reports: Get insights into your spending habits with detailed reports, including summaries, category breakdowns, and wallet cash flows.
- Data Export/Import: Export your transaction data to CSV and back up your entire financial history to a JSON file.
- AI-Powered Analytics: Leverage the power of AI to get smart insights and analytics on your financial data.
- Secure: Built with security in mind, including input validation, rate limiting, and protection against common vulnerabilities.
- Node.js (v20 or higher)
- Docker and Docker Compose
- PostgreSQL
-
Clone the repository:
git clone https://github.com/your-username/flowtrack-service.git cd flowtrack-service -
Create a
.envfile from the example and update the environment variables as needed:cp .env.example .env
-
Install dependencies:
npm install
-
Run the database migration:
npm run migrate
-
Start the application:
npm run start:dev
-
Build and start the containers:
docker-compose up -d --build
-
Run database migrations:
docker-compose exec backend npm run migrate
The application will be available at http://localhost:3000.
The API documentation is automatically generated using Swagger and is available at /docs.
- Swagger UI:
http://localhost:3000/docs - Swagger JSON:
http://localhost:3000/docs-json
- Backend: NestJS (Node.js)
- Database: PostgreSQL
- ORM: TypeORM
- Authentication: JWT, Passport
- API Documentation: Swagger (OpenAPI)
- Containerization: Docker, Docker Compose
- Language: TypeScript
Contributions are welcome! Please feel free to submit a pull request or open an issue to discuss any changes.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.