Skip to content

manziosee/taskforce-challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TaskForce Wallet 🚀

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.


Hosted URLs 🌐


Features ✨

  • 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.

Tech Stack 🛠️

Frontend

  • React ⚛️
  • TypeScript 📘️
  • Tailwind CSS 🎨
  • React Router 🔣
  • Chart.js 📊
  • Axios 🌐

Backend

  • Node.js 🟢
  • Express.js 🚂
  • MongoDB 🍃
  • Mongoose 🐪
  • JWT 🔑
  • Swagger 📝

Testing

  • Jest 🧪
  • Supertest 🚀

Tools

  • Vite
  • Winston 📝 (Logging)
  • Resend 📧 (Email Notifications)

Installation 🛠️

Prerequisites

  • Node.js (v16 or higher)
  • MongoDB (local or cloud instance)
  • API key for Open Exchange Rates
  • Resend API Key (for email notifications)

Steps

  1. Clone the Repository

    git clone https://github.com/manziosee/taskforce-challenge.git
    cd taskforce-wallet
  2. Install Dependencies

    cd frontend && npm install
    cd ../backend && npm install
  3. Set Up Environment Variables

    • Create a .env file in the backend 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
  4. Run the Application

    • Start the backend:
      cd backend && npm run dev
    • Start the frontend:
      cd frontend && npm run dev
  5. Access the Application

    • Frontend: https://taskforce-challenge.vercel.app
    • Backend API: http://localhost:5000
    • Swagger Docs: https://taskforce-challenge.onrender.com/api-docs/

API Documentation 📝

The API is documented using Swagger. You can access the documentation at:

https://taskforce-challenge.onrender.com/api-docs/

Testing 🧪

Run tests using Jest:

cd backend && npm test

Contributing 🤝

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -m 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Open a pull request.

License 📜

This project is licensed under the MIT License. See the LICENSE file for details.


Acknowledgments 🙏


Contact 📧

For questions or feedback, feel free to reach out:


Happy budgeting! 💸✨

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published