TaskForce Wallet is a personal finance management application designed to help users track their income, expenses, budgets, and financial goals. With a clean and intuitive interface, users can manage their finances effectively and gain insights into their spending habits.
- Frontend: https://taskforce-challenge.vercel.app/
- Backend: https://taskforce-challenge.onrender.com/api-docs/
-
User Authentication 🔐
- Register, login, and change password.
- JWT-based authentication for secure access.
-
Budget Management 💰
- Create, update, and delete budgets.
- Track spending against budget limits.
- Receive notifications when budgets are exceeded.
-
Transaction Tracking 📊
- Add, edit, and delete transactions.
- Categorize transactions (e.g., Food, Transport, Entertainment).
- View transaction history with filters.
-
Category Management 🔂
- Create and manage categories and subcategories.
- Update or delete subcategories.
-
Financial Reports 📈
- Generate detailed financial reports.
- Export reports as CSV for offline analysis.
-
Dashboard Overview 🔥
- Visualize income, expenses, and category-wise spending.
- Interactive charts for better insights.
-
Currency Conversion 💱
- Convert transaction amounts to different currencies using real-time exchange rates.
-
Dark Mode 🌙
- Toggle between light and dark themes for a personalized experience.
- React ⚛️
- TypeScript 📘️
- Tailwind CSS 🎨
- React Router 🔣
- Chart.js 📊
- Axios 🌐
- Node.js 🟢
- Express.js 🚂
- MongoDB 🍃
- Mongoose 🐪
- JWT 🔑
- Swagger 📝
- Jest 🧪
- Supertest 🚀
- Vite ⚡
- Winston 📝 (Logging)
- Resend 📧 (Email Notifications)
- Node.js (v16 or higher)
- MongoDB (local or cloud instance)
- API key for Open Exchange Rates
- Resend API Key (for email notifications)
-
Clone the Repository
git clone https://github.com/manziosee/taskforce-challenge.git cd taskforce-wallet
-
Install Dependencies
cd frontend && npm install cd ../backend && npm install
-
Set Up Environment Variables
- Create a
.env
file in thebackend
directory with the following content:PORT=5000 MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/taskforce-wallet?retryWrites=true&w=majority JWT_SECRET=your_jwt_secret_key OPEN_EXCHANGE_RATES_API_KEY=your_api_key RESEND_API_KEY=your_api_key EMAIL_FROM=email_address
- Create a
-
Run the Application
- Start the backend:
cd backend && npm run dev
- Start the frontend:
cd frontend && npm run dev
- Start the backend:
-
Access the Application
- Frontend:
https://taskforce-challenge.vercel.app
- Backend API:
http://localhost:5000
- Swagger Docs:
https://taskforce-challenge.onrender.com/api-docs/
- Frontend:
The API is documented using Swagger. You can access the documentation at:
https://taskforce-challenge.onrender.com/api-docs/
Run tests using Jest:
cd backend && npm test
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- Open Exchange Rates for currency conversion.
- Lucide Icons for beautiful icons.
For questions or feedback, feel free to reach out:
- Email: oseemanzi3@gmail.com
- GitHub: https://github.com/manziosee
Happy budgeting! 💸✨