Skip to content

BlessedSiden1234/Expense-tracker-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Expense Tracker App πŸ’΅

Full Stack Application β€” React + Azure Functions + Azure Cosmos DB (NoSQL)

This repository contains a complete full-stack Expense Tracker application built with:

  • Frontend: React
  • Backend: Azure Functions (Node.js)
  • Database: Azure Cosmos DB (NoSQL API)

The project demonstrates cloud-native backend development, serverless APIs, and secure environment configuration using Azure services.


πŸ“Œ Features

  • User authentication (register & login)
  • Expense tracking by date and category
  • Savings and loan tracking
  • User-specific settings
  • Cloud-hosted serverless backend
  • Secure database access using environment variables

πŸ“ Repository Structure

expense-tracker-app/
β”‚
β”œβ”€β”€ expense-tracker-frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.local
β”‚
β”œβ”€β”€ expense-tracker-backend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   └── functions/
β”‚   β”‚       β”œβ”€β”€ createUser/
β”‚   β”‚       β”œβ”€β”€ loginUser/
β”‚   β”‚       β”œβ”€β”€ addExpense/
β”‚   β”‚       β”œβ”€β”€ createSettingsForUser/
β”‚   β”œβ”€β”€ host.json
β”‚   β”œβ”€β”€ local.settings.json
β”‚   β”œβ”€β”€ package.json
β”‚   └── .env.local
β”‚
└── README.md

🧰 Tech Stack

Frontend

  • React
  • React Router
  • Fetch API
  • Chart.js

Backend

  • Azure Functions (Node.js)
  • Azure Cosmos DB (NoSQL API)
  • VS Code Azure Extensions

☁️ Backend Deployment (Azure)

1️⃣ Create Azure Resources

Create Azure Cosmos DB (NoSQL)

  • Resource type: Azure Cosmos DB
  • API: NoSQL
  • Database: expenseTrackerDB
  • Container: expenses
  • Partition key: /userId

πŸ“Έ Screenshots: Azure CosmosDB NoSQL create CosmosDB Deploying Creating Database & ContainerId

2️⃣ Copy Cosmos DB Connection String

  • Azure Portal β†’ Cosmos DB β†’ Keys
  • Copy Primary Connection String

πŸ“Έ Screenshot: Copy Connection String


3️⃣ Create Azure Function App

  • Runtime stack: Node.js
  • Hosting plan: Consumption
  • OS: Linux

πŸ“Έ Screenshot: Create Function App


4️⃣ Configure Environment Variable

Azure Portal β†’ Function App β†’ Configuration β†’ Application Settings

COSMOS_CONNECTION=AccountEndpoint=...;AccountKey=...

πŸ“Έ Screenshot: Environment Variable Settings Add Connection String


5️⃣ Connect Function App to VS Code

  • Install Azure Tools Extension
  • Sign in to Azure
  • Manage functions remotely

πŸ“Έ Screenshots: Install Azue Tools Extension Manage functions Deploy functions remotely


Clone Repository

git clone https://github.com/BlessedSiden1234/Expense-tracker-app.git

6️⃣ Run Backend Locally

cd expense-tracker-backend
npm install
func start

Backend URL:

http://localhost:7071

βš›οΈ Frontend Setup

cd expense-tracker-frontend
npm install
npm start

Frontend URL:

http://localhost:3000

Frontend Environment Variable

REACT_APP_API_BASE_URL=https://<your-function-app>.azurewebsites.net/api

πŸ–ΌοΈ Frontend Screenshots

Home Page
Home Page

Login Page
Login Page

Settings Page
Settings Page

Statistics Page
Statistics Page


πŸ” Environment Variables Summary

Backend

COSMOS_CONNECTION=...

Frontend

REACT_APP_API_BASE_URL=...

πŸ“ Notes

  • .env.local files are ignored
  • Secrets are stored in Azure App Settings
  • Backend and frontend deploy independently
  • Firebase fully removed
  • Serverless architecture for scalability

πŸ‘¨β€πŸ’» Author

Blessed Siden
Full-Stack Engineer | Cloud & Serverless
GitHub: https://github.com/BlessedSiden1234

About

Full-stack expense tracker built with React, Azure Functions for API routes, and Azure Cosmos DB for data storage.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors