Skip to content

rafio1020/Finance-Tracker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

474 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.NET 8 EF Core SQL Server Azure Next.js shadcn/ui

Quality Gate Status Lines of Code Coverage

Finance Tracker

Simplify Finances, Ease Collaboration

Finance Tracker is a comprehensive financial management application designed to help users track personal finances and manage collaborative financial activities. It's objectives are:

  • Provide an organized way to track income and expenses.
  • Offer visibility into financial habits through analytics.
  • Enable collaborative financial activities (e.g., borrowing and lending money).

wiki SRS DOC API DOC live demo

Team

Information

ProCastinators
Role Name GitHub
Team Leader Md. Sakib Hossain sakibhossain323
Member Shat-El Shahriar Khan Ashik150
Member Md. Redwan Bhuiyan Rafio rafio1020
Mentor Mahbubur Rahman mahbub23

Resources

Kanban Board Diagrams

Project Description

Key Features

  • Wallet Management
    Maintain multiple wallets, track balances, and transfer funds among them.
  • Category Management
    Add, edit or delete categories to track and classify your income and expenses
  • Income & Expense Tracking
    Add, edit or delete transactions (amount, additional note, date/time), link them to with relevant categories and wallets
  • Analytics & Reports
    View category-wise breakdowns and trend charts to understand your income and spending over time.
  • Loan Management Keep track of borrowing and lending money for non-registered users as well as interactively keep track of loans by leveraging features like loan request, approval, installments etc

ERD Diagram

ERD Diagram 1

ERD Diagram 2

Architectural Overview

  • Deployment Model: Monolith Architecture
  • Code Organiztion: Clean Architecture
  • Design Patterns: Mediator, CQRS, Repository

Repository Structure

FinanceTracker.sln
backend/
├── src
│   ├── FinanceTracker.Api/
│   │   └── Controllers/
│   ├── FinanceTracker.Application/
│   │   └── [any-entity]/
│   │       ├── Commands/
│   │       ├── Queries/
│   │       └── Dtos/
│   ├── FinanceTracker.Domain/
│   │   ├── Constants/
│   │   ├── Entities/
│   │   └── Exceptions/
│   └── FinanceTracker.Infrastructure/
│       ├── Persistence/
│       ├── Migrations/
│       └── Repositories/
└── tests/
    ├── FinanceTracker.Api.Tests/
    └── FinanceTracker.Application.Tests/
frontend/
└── finance-tracker/

Getting Started

Prerequisites

Clone the Repository

  • Open up the terminal and run the following commands:
git clone https://github.com/Learnathon-By-Geeky-Solutions/procastinators

Open Solution in Visual Studio

  • Run the following commands to open directly from terminal:
cd procastinators
start FinanceTracker.sln

Update Database Connection String

  • Open appsettings.Development.json from FinanceTracker.Api.
  • Update the connection string according to your database:
"ConnectionStrings": {
  "DefaultConnection": // place your connection string here
}

Run the API

  • Set FinanceTracker.Api as the startup project.
  • Press F5 to run the API (alternatively, click ▶ Start button in the top toolbar)

Setting Up Frontend

  • Go back to the terminal, navigate to the frontend/finance-tracker directory and install dependencies.
cd frontend/finance-tracker
npm i

Generate Auth Secret:

  • Run the following command:
npx auth secret

This will generate a .env.local file with AUTH_SECRET environment variable in it.

Set Environment variables .env.local.

  • Set AUTH_TRUST_HOST to true
  • Set BACKEND_BASE_URL to the URL your API running (along with port number)

Launch Application

  • Run the following command to run the Next.js app:
npm run dev

Configure CORS (if required)

  • Next.js by default runs on localhost:3000. but if the default port is changed, update the CORS configuration of FinanceTracker.Api from appsettings.Development.json
"Cors": {
  "AllowedOrigin": // place url here
}

Fix Fetch Error (if required)

  • If you encounter fetch error due to self signed certificates, a simple work around for local development is using url with http in stead of https(if API is running on https, as https redirection is not enabled for development environment) for the BACKEND_BASE_URL in env.local

Development Guidelines

Gitflow

Further Reading

About

Repository for team ProCastinators

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 59.1%
  • TypeScript 40.5%
  • Other 0.4%