A full-stack web application for managing a Bahuudeshiya Sahakari Sanstha (Multipurpose Cooperative Organization)
| Layer | Technology |
|---|---|
| Backend | Spring Boot 3.3, Java 21, Gradle |
| Frontend | React 18, Vite, TailwindCSS |
| Database | PostgreSQL |
| Auth | Spring Security + JWT |
- Three-role system: Admin, Employee, Member | Each with their own dashboard and restricted access
- Member management: Registration, savings accounts, share capital tracking
- Loan lifecycle: Application -> Admin approval -> Repayment tracking
- Transaction history: Full audit trail per member
- Secure: JWT authentication, BCrypt passwords, role-enforced API endpoints
- Java 21+
- Node.js 18+
- PostgreSQL 12+
psql -U postgres -c "CREATE DATABASE sahakari_db;"cd SahakariSanstha
./gradlew bootRunThe DataSeeder runs automatically on first startup and populates the database
with demo data (Admin, Employees, Members, Savings Accounts, Loans).
Configure your DB credentials via environment variables:
export DB_USERNAME=your_postgres_user
export DB_PASSWORD=your_postgres_passwordOr edit src/main/resources/application.properties directly.
cd SahakariSanstha_Frontend
npm install
npm run devRuns on http://localhost:3000. API calls are proxied to the backend on port 8080.
| Role | Username | Password |
|---|---|---|
| Admin | admin |
Admin@123 |
| Employee | employee1 |
Emp@123 |
| Member | dinesh |
Member@123 |
├── SahakariSanstha/ # Spring Boot backend
│ └── src/main/java/com/sahakari/
│ ├── controller/ # REST endpoints
│ ├── service/ # Business logic
│ ├── entity/ # JPA models
│ ├── repository/ # Data access
│ ├── security/ # JWT + Spring Security
│ └── dto/ # Request/Response objects
│
└── SahakariSanstha_Frontend/ # React frontend
└── src/
├── pages/ # Role-based page groups
├── components/ # Reusable UI components
├── services/ # Axios API clients
└── contexts/ # Auth state (React Context)