A full-stack web application to manage personal finances, including accounts, transactions, budgets, and notifications. The app features user authentication and data visualization through charts.
User Authentication: Secure login and signup. Accounts Management: Add, view, and manage different types of accounts (bank, cash, mobile money). Transactions: Record and categorize income and expenses. Budgets: Set budgets with start and end dates. Notifications: Receive updates about transactions and budget status. Dashboard: View financial summaries, account details, and transaction history.
Frontend React.js Tailwind CSS Axios Chart.js Backend Node.js Express.js Neon (PostgreSQL) JWT Authentication Deployment Frontend: Netlify Backend: Render
wallet-web-application/ ├── backend/ │ ├── controllers/ # Business logic │ ├── models/ # Database models │ ├── routes/ # API routes │ ├── db.js # Database connection │ ├── server.js # Main entry point │ ├── .env # Environment variables │ └── package.json # Backend dependencies ├── frontend/ │ ├── src/ │ │ ├── components/ # React components │ │ ├── pages/ # Application pages │ │ ├── api/ # API integration │ │ ├── App.js # Main React app │ │ ├── index.js # Entry point │ ├── public/ # Static files │ ├── .env # Frontend environment variables │ └── package.json # Frontend dependencies └── README.md # Project documentation
Authentication POST /auth/register - Register a new user. POST /auth/login - Authenticate and get a token. Accounts GET /accounts - Get all accounts. POST /accounts - Add a new account. Transactions GET /transactions - Get all transactions. POST /transactions - Add a new transaction. Budgets GET /budgets - Get all budgets. POST /budgets - Create a new budget. Notifications GET /notifications - Get all notifications. PUT /notifications/:id - Mark a notification as read.
Add multi-language support. Enable dark mode. Integrate recurring transactions. Add export functionality for transactions (CSV/Excel).
Fork the repository. Create a new branch: git checkout -b feature-name Commit changes: git commit -m "Add feature name" Push to the branch: git push origin feature-name Open a pull request.