Skip to content

A full-stack web app for planning, tracking, and managing travel budgets efficiently.

Notifications You must be signed in to change notification settings

Tusharwasake/TravelBudgetTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 

Repository files navigation

TravelBudgetTool - Documentation


Project Overview:

TravelBudgetTool is a full-stack web application designed to help users efficiently plan, track, and manage travel budgets. Users can organize trips, record expenses, monitor spending in real-time, and generate reports to make informed financial decisions during their travels.


Run Locally

1. Clone the Project:

git clone https://github.com/Tusharwasake/TravelBudgetTool.git

2. Navigate to the Project Directory:

cd TravelBudgetTool/Frontend

3. Install Dependencies:

npm install

4. Start the Development Server:

npm run dev

Deployed Link


Tech Stack

Frontend:

  • HTML / CSS – Structure and styling.
  • React.js (JSX) – Component-based UI development.
  • Axios – HTTP client for API calls.
  • React Router – SPA (Single Page Application) routing.

Backend:

  • Node.js – JavaScript runtime environment.
  • Express.js – Web framework for building APIs.
  • MongoDB / Mongoose – NoSQL database and schema modeling.
  • Render.com – Deployment and hosting platform.
  • Argon2 – Secure password hashing.
  • JWT (jsonwebtoken) – Authentication and authorization.
  • CORS – Cross-origin resource sharing for secure API communication.
  • dotenv – Manage environment variables.

Project Type

  • Full Stack MERN (MongoDB, Express.js, React.js, Node.js)

Features

  1. User Authentication:

    • Secure login and signup.
    • JWT-based authentication and role-based user permissions.
  2. Trip Planning:

    • Organize trips by adding destination, travel dates, and budget limits.
  3. Expense Tracking:

    • Record and categorize expenses (e.g., Food, Transport, Accommodation).
    • Link expenses directly to active trips and budgets.
  4. Multi-Currency Support:

    • Record expenses in different currencies with automatic conversion.
  5. Reports & Analysis:

    • Generate detailed spending reports and analyze expenses by category.
    • Downloadable reports in PDF/CSV formats.
  6. Real-Time Budget Monitoring:

    • Visualize remaining budgets and track spending trends over time.

API Endpoints:

Authentication:

Signup:

POST /user/signup

Payload:

{
  "name": "John Doe",
  "email": "john@example.com",
  "password": "password123"
}

Signin:

POST /user/signin

Payload:

{
  "email": "john@example.com",
  "password": "password123"
}

Response:

{
  "token": "<JWT_TOKEN>"
}

Budget Management:

Create Budget:

POST /user/budgets
Authorization: Bearer <JWT_TOKEN>

Payload:

{
  "city": "Paris",
  "totalBudget": 5000,
  "numberOfDays": 7
}

Get All Budgets:

GET /user/budgets
Authorization: Bearer <JWT_TOKEN>

Get Budget with Expenses:

GET /user/budgets/:budgetId
Authorization: Bearer <JWT_TOKEN>

Expense Management:

Add Expense to Budget (Automatically Linked to Active Budget):

POST /user/budgets/expenses
Authorization: Bearer <JWT_TOKEN>

Payload:

{
  "date": "2023-12-22",
  "description": "Dinner at a restaurant",
  "category": "Food",
  "amount": 50
}

User Dashboard:

Show Budget Data (With Calculated Expenses):

GET /user/budgets/showdata
Authorization: Bearer <JWT_TOKEN>

Response:

{
  "totalBudget": 5000,
  "remainingBudget": 4200,
  "totalexpenses": 800,
  "dailyAvgSpent": 114.28
}

Security Best Practices:

  • Use HTTPS for secure communication.
  • Store JWT securely (httpOnly cookies or localStorage).
  • Hash passwords before saving them.
  • Limit API rate requests to prevent abuse.
  • Regularly update dependencies to avoid vulnerabilities.

Contact:

For questions or collaborations, reach out at (mailto:tusharwasake@example.com).

About

A full-stack web app for planning, tracking, and managing travel budgets efficiently.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •