A modern, blockchain-secured digital Equb (ROSCA) platform that revolutionizes traditional rotating savings and credit associations in Ethiopia. Built with React, FastAPI, and MongoDB.
# DigiEqub
DigiEqub is a digital Equb (ROSCA) platform with a React frontend and FastAPI backend. This repository already contains broad feature coverage for authentication, groups, transactions, notifications, admin workflows, and credit scoring, and is being aligned toward a more production-ready architecture.
## Stack
- Frontend: React 18, Vite, React Router, TanStack Query, MUI, Framer Motion
- Backend: FastAPI, Pydantic settings, service-layer architecture, JWT auth
- Data and infra target: MongoDB, Redis, Celery, Web3 integrations
## Current Structure
```text
digitequb/
├── frontend/ # React app, pages, hooks, contexts, services
├── backend/ # FastAPI app, api routers, services, models, tests
└── docker-compose.yml
```
## Frontend Highlights
- Auth, dashboard, groups, transactions, profile, notifications, settings, admin pages
- Protected routing and page-level suspense loading
- Contexts for auth, theme, UI, notifications, and websocket support
- React Query and service modules for API integration
## Backend Highlights
- Versioned API under `/api/v1`
- Platform metadata and health endpoints:
- `/`
- `/api/v1/health`
- `/api/v1/platform`
- Route groups for auth, users, groups, transactions, notifications, and admin
- Configurable CORS, trusted hosts, and startup bootstrapping
## Local Development
### Frontend
```bash
cd frontend
npm install
npm run dev
```
### Backend
```bash
cd backend
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
uvicorn app.main:app --reload
```
## Docker
You can run the app stack with:
```bash
docker compose up --build
```
This starts:
- Frontend on `
localhost`
- Backend on `
localhost`
- Redis on `localhost:6379`
## API Docs
When the backend is running:
- Swagger UI: `
localhost`
- ReDoc: `
localhost`
- OpenAPI JSON: `
localhost`
## Delivery Status
The repository is not yet a ful …