Finance-App is a comprehensive personal finance management application that helps users track expenses, manage budgets, and achieve their financial goals. This project consists of a React-based frontend and a Node.js backend with GraphQL API.
- Expense tracking and categorization
- Budget planning and monitoring
- Investment portfolio management
- Financial insights and reports
- Secure bank account integration via Plaid
- User authentication with JWT and Google OAuth
- Responsive design for mobile and desktop
- React
- Apollo Client for GraphQL
- Material-UI for styling
- Chart.js for data visualization
- React Router for navigation
- Node.js
- Express.js
- GraphQL (Apollo Server)
- Sequelize ORM
- PostgreSQL
- JSON Web Tokens (JWT) for authentication
- Bcrypt for password hashing
- Joi for input validation
- Stripe for payment processing
- Nodemailer for email services
- Winston for logging
- Plaid for bank account integration
- Node.js (v14 or later)
- PostgreSQL
- Docker
- Docker Compose
- Plaid account (for bank integration)
- Stripe account (for payment processing)
-
Clone the repository:
git clone <repository-url> cd finance-app -
Install dependencies for both frontend and backend:
cd client && npm install cd ../server && npm install -
Set up environment variables:
- Create a
.envfile in theserverdirectory based on the.env.examplefile - Create a
.envfile in theclientdirectory based on the.env.examplefile
- Create a
-
Build and start the application using Docker:
docker-compose up --build -
Open your browser and navigate to
http://localhost:5173to view the application.
client/: React frontend applicationsrc/: Source files for the React appcomponents/: Reusable React componentspages/: Main page componentsgraphql/: GraphQL queries and mutationscontext/: React context providersstyles/: Global styles and theme configuration
server/: Node.js backend applicationconfig/: Configuration filesgraphql/: GraphQL schema and resolversmodels/: Sequelize model definitionsservices/: Business logic and external API integrationsutils/: Utility functions and helpers
Contributions are welcome! Please feel free to submit a Pull Request.
- Plaid for bank account integration
- Stripe for payment processing
- Chart.js for data visualization
- Material-UI for UI components