An open API service indexing awesome lists of open source software.

https://github.com/het-07/loansyncro

LoanSyncro is a modern financial management application designed to simplify the tracking and optimization of personal and small business loans and their associated repayments.
https://github.com/het-07/loansyncro

aws-service-catalog aws-services axios-react flask-application python taiwlindcss typescript

Last synced: 28 days ago
JSON representation

LoanSyncro is a modern financial management application designed to simplify the tracking and optimization of personal and small business loans and their associated repayments.

Awesome Lists containing this project

README

          

# 🏦 LoanSyncro - Personal Loan Management System

[![AWS](https://img.shields.io/badge/AWS-Cloud%20Native-orange?logo=amazon-aws)](https://aws.amazon.com/)
[![React](https://img.shields.io/badge/React-18.2.0-blue?logo=react)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.0.2-blue?logo=typescript)](https://www.typescriptlang.org/)
[![FastAPI](https://img.shields.io/badge/FastAPI-0.116.1-green?logo=fastapi)](https://fastapi.tiangolo.com/)
[![Terraform](https://img.shields.io/badge/Terraform-IaC-purple?logo=terraform)](https://www.terraform.io/)

A comprehensive, serverless personal loan management system built on AWS cloud infrastructure. LoanSyncro enables users to efficiently track loans, manage repayments, and monitor their financial obligations through a modern, responsive web interface.

## 🏗️ Architecture Overview

![Architecture Diagram](<./documentation/Final-Architecture-Diagram-(M2)-B00988337.png>)

LoanSyncro follows a **serverless, cloud-native architecture** leveraging AWS services for scalability, security, and cost-effectiveness.

## 🚀 Key Features

- **🔐 Secure Authentication**: AWS Cognito-based user management with JWT tokens
- **📊 Loan Management**: Create, update, and track loan details with automatic calculations
- **💰 Repayment Tracking**: Record payments with automated status updates
- **📧 Smart Notifications**: Email alerts for loan completion and payment confirmations
- **📱 Responsive Design**: Modern UI built with React and Tailwind CSS
- **☁️ Serverless Backend**: AWS Lambda functions for optimal performance and cost
- **🔒 Enterprise Security**: KMS encryption, IAM policies, and secure API endpoints

## 🛠️ Technology Stack

### Frontend

- **Framework**: React 18.2.0 with TypeScript
- **Styling**: Tailwind CSS with responsive design
- **State Management**: React Hooks and Context API
- **HTTP Client**: Axios with JWT interceptors
- **Build Tool**: Vite for fast development and optimized builds

### Backend (Serverless)

- **Runtime**: Python 3.9 with FastAPI framework
- **API Gateway**: RESTful endpoints with CORS support
- **Authentication**: AWS Cognito User Pools
- **Functions**: AWS Lambda for business logic

### Infrastructure (AWS Services)

- **🗄️ Database**: Amazon DynamoDB (NoSQL)
- **🔐 Authentication**: AWS Cognito User Pools
- **⚡ Compute**: AWS Lambda Functions
- **🌐 API**: Amazon API Gateway
- **📧 Notifications**: Amazon SNS
- **📊 Monitoring**: Amazon CloudWatch
- **🔒 Security**: AWS KMS, IAM Roles & Policies
- **🚀 Hosting**: AWS Amplify (Frontend)
- **💾 Storage**: Amazon S3
- **🔧 Infrastructure**: Terraform (IaC)

## 📁 Project Structure

```
LoanSyncro/
├── 📂 frontend/ # React TypeScript application
├── 📂 infrastructure/ # Terraform IaC configurations
├── 📂 backend/ # FastAPI development server (local testing)
└── 📂 documentation/ # Project documentation and diagrams
```

## 🚀 Quick Start

### Prerequisites

- AWS CLI configured with appropriate permissions
- Terraform >= 1.0
- Node.js >= 18
- Python 3.9+ (for local development)

### 1. Deploy Infrastructure

```bash
cd infrastructure
terraform init
terraform plan
terraform apply
```

### 2. Set up Frontend

```bash
cd frontend
npm install
npm run build
```

The frontend will be automatically deployed via AWS Amplify as part of the Terraform deployment.

### 3. Access the Application

After successful deployment, access your application at the Amplify-generated URL or your custom domain.

## 📚 Detailed Documentation

| Component | Documentation | Description |
| --------------------- | ----------------------------------------------------- | ------------------------------------------------------ |
| 🏗️ **Infrastructure** | [📖 Infrastructure Guide](./infrastructure/README.md) | Terraform configurations, AWS services, and deployment |
| 🎨 **Frontend** | [📖 Frontend Guide](./frontend/README.md) | React application, components, and development |

## ⚙️ Configuration

### Environment Variables

The application requires specific environment variables for different components:

- **Frontend**: Configured via `.env` files with Vite prefixes
- **Infrastructure**: Managed through `terraform.tfvars`
- **Backend**: Environment variables injected via Lambda configuration

### AWS Services Configuration

| Service | Purpose | Configuration |
| --------------- | ------------------------------------- | ----------------------------------------- |
| **DynamoDB** | Data storage for loans and repayments | On-demand billing, point-in-time recovery |
| **Cognito** | User authentication and authorization | User pools with email verification |
| **Lambda** | Serverless API backend | Python 3.9 runtime, 128MB memory |
| **API Gateway** | RESTful API endpoints | CORS enabled, JWT authorization |
| **Amplify** | Frontend hosting and CI/CD | Connected to GitHub repository |
| **SNS** | Email notifications | Topics for loan and payment alerts |
| **CloudWatch** | Monitoring and logging | 14-day log retention, custom metrics |

## 🔒 Security Features

- **🔐 Authentication**: AWS Cognito with secure JWT tokens
- **🛡️ Authorization**: IAM roles with least-privilege access
- **🔒 Encryption**: KMS-managed encryption for data at rest
- **🌐 HTTPS**: SSL/TLS encryption for all API communications
- **🔑 API Security**: CORS policies and request validation

## 📊 Monitoring & Observability

- **📈 CloudWatch Metrics**: API performance and Lambda execution metrics
- **📋 Logging**: Structured logging across all services
- **🚨 Alarms**: Automated alerts for errors and performance issues
- **📧 Notifications**: SNS-based email notifications for system events

## 🔄 CI/CD Pipeline

- **Frontend**: AWS Amplify with GitHub integration
- **Infrastructure**: Terraform for reproducible deployments
- **Backend**: Serverless functions deployed via Terraform

## 🏗️ AWS Well-Architected Framework

LoanSyncro follows all **6 pillars** of the AWS Well-Architected Framework:

| Pillar | Key Implementation | AWS Services Used | Benefits Achieved |
| ----------------------------- | ------------------------------------------- | ------------------------------ | ------------------------------ |
| **🔧 Operational Excellence** | Infrastructure as Code, Automated CI/CD | Terraform, Amplify, CloudWatch | 99.9% deployment success |
| **🔒 Security** | Multi-layer security, Encryption | Cognito, IAM, KMS, API Gateway | Zero security incidents |
| **🛡️ Reliability** | Serverless architecture, Auto-scaling | Lambda, DynamoDB Multi-AZ | 99.99% uptime SLA |
| **⚡ Performance Efficiency** | Serverless computing, CDN distribution | Lambda, DynamoDB, Amplify CDN | <200ms API response time |
| **💰 Cost Optimization** | Pay-per-use, Right-sizing resources | On-demand DynamoDB, Lambda | 70% cost reduction |
| **🌱 Sustainability** | Serverless efficiency, Auto-scaling to zero | Lambda, DynamoDB, Amplify | 80% carbon footprint reduction |

## 🌟 Key Benefits

- **💰 Cost-Effective**: Pay-per-use serverless architecture
- **📈 Scalable**: Auto-scaling AWS services handle traffic spikes
- **🔒 Secure**: Enterprise-grade security with AWS best practices
- **⚡ Fast**: Optimized performance with CDN and caching
- **🛡️ Reliable**: High availability with AWS managed services

## 🤝 Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## 👨‍💻 Author

**Het Patel**

- 📧 Email: ihgpatel3401@yahoo.com
- 🔗 GitHub: [@Het-07](https://github.com/Het-07)

---

**⭐ Star this repository if you find it helpful!**