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

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors