Skip to content

A personal finance tracker where users can log and categorize their expenses.

Notifications You must be signed in to change notification settings

Kingflow-23/Expense-Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Name

💰📊 Expense Tracker – Take Control of Your Finances!

📌 Overview

This project is a user management system that allows users to sign up, log in, update their profile, and log out securely. It utilizes FastAPI for the backend and Streamlit for the frontend, ensuring a seamless and modern user experience.

🚀 Features

  • User authentication (signup, login, logout)
  • Profile management (update user details)
  • Secure API with JWT authentication
  • Streamlit-powered frontend for a smooth UI

🛠️ Technologies Used

  • Backend: FastAPI, SQLAlchemy, Pydantic
  • Frontend: Streamlit
  • Database: PostgreSQL (or SQLite for development)
  • Authentication: JWT Tokens

📂 Project Structure

📦 project-directory
 ┣ 📂 backend
 ┃ ┣ 📜 main.py          # FastAPI application
 ┃ ┣ 📜 models.py        # Database models
 ┃ ┣ 📜 routes.py        # API endpoints
 ┃ ┣ 📜 auth.py          # Authentication logic
 ┃ ┗ 📜 database.py      # Database connection
 ┣ 📂 frontend
 ┃ ┣ 📜 app.py           # Streamlit UI
 ┃ ┗ 📜 components.py    # UI Components
 ┣ 📜 README.md          # Project documentation
 ┣ 📜 requirements.txt   # Dependencies
 ┗ 📜 .env               # Environment variables

⚙️ Installation & Setup

1️⃣ Clone the Repository

git clone https://github.com/Kingflow-23/Expense-Tracker.git

Create a Virtual Environment

python -m venv .

source ./bin/activate  # On Linux/Mac
.\Scripts\activate  # On Windows 

2️⃣ Install Dependencies

python -m pip install --upgrade pip
pip install -r requirements.txt

3️⃣ Setup Environment Variables

Create a .env file and add the required configuration:

DATABASE_URL=postgresql://user:password@localhost/db_name
SECRET_KEY=your_secret_key
ACCESS_TOKEN_EXPIRE_MINUTES=30

4️⃣ Run the Backend

uvicorn backend.main:app --reload

5️⃣ Run the Frontend

streamlit run frontend/app.py

🎬 Quick Demo

Below is a quick preview of the application in action:

🔹 Login Page

image

🔹 Profile Update

image

🔹 Logout

🚪➡️ Click the logout button to securely exit.

🔗 API Endpoints

Method Endpoint Description
POST /auth/signup Register a new user
POST /auth/login Authenticate user
PUT /auth/update Update user profile
DELETE /auth/delete Delete user
POST /expenses Register new expense
GET /expenses Retrieve all expenses
GET /expenses/{id} Retrieve a specific expense
PATCH /expenses/{id} Update an existing expense
DELETE /expenses/{id} Delete an expense

📜 License

This project is licensed under the MIT License.

🙌 Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you’d like to change.


Made with ❤️ by KingFlow-23

About

A personal finance tracker where users can log and categorize their expenses.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages