A comprehensive admin management system for the savings management platform, built with modern web technologies.
This is the Admin/Management Application for the savings system. It provides administrators with powerful tools to manage customers, verify devices, monitor transactions, and analyze platform performance.
credit-jambo-admin/
├── backend/ # Node.js + Express.js API
├── frontend/ # React.js Admin Dashboard
├── .env.example # Environment configuration
└── README.md # This file
- Secure JWT-based authentication
- Role-based access control
- Session management
- Review unverified customer devices
- Individual and batch device verification
- Device statistics and monitoring
- Complete customer database
- Search and filter capabilities
- Customer transaction history
- Balance monitoring
- Real-time platform metrics
- Transaction trends and insights
- Customer distribution analysis
- Performance monitoring
- Helmet security headers
- Rate limiting protection
- Input validation and sanitization
- CORS configuration
- SQL injection prevention
- Runtime: Node.js
- Framework: Express.js
- Database: PostgreSQL
- ORM: Sequelize
- Authentication: JWT
- Security: Helmet, bcrypt, express-rate-limit
- Documentation: Swagger/OpenAPI
- Framework: React 18
- Styling: Tailwind CSS
- Routing: React Router DOM
- Charts: Recharts
- Icons: React Icons
- Notifications: React Toastify
- HTTP Client: Axios
- Node.js (v14 or higher)
- PostgreSQL (v12 or higher)
- npm or yarn
git clone <repository-url>
cd credit-jambo-admincd backend
npm install
cp .env.example .env
# Configure your .env file with database credentials
npm run devcd frontend
npm install
cp .env.example .env
# Configure your .env file with API URL
npm start- Frontend: http://localhost:3001
- Backend API: http://localhost:4001
- API Documentation: http://localhost:4001/api-docs
- Email: admin@creditjambo.com
- Password: admin123
POST /api/admin/login- Admin loginPOST /api/admin/logout- Admin logoutGET /api/admin/profile- Get admin profile
GET /api/devices/unverified- Get unverified devicesPATCH /api/devices/verify/:userId- Verify a devicePATCH /api/devices/verify-batch- Verify multiple devicesGET /api/devices/stats- Get device statistics
GET /api/customers- Get all customersGET /api/customers/:userId- Get customer detailsGET /api/customers/:userId/transactions- Get customer transactionsGET /api/customers/:userId/balance- Get customer balanceGET /api/customers/stats- Get customer statistics
GET /api/analytics/dashboard- Get dashboard analyticsGET /api/analytics/transactions- Get transaction analyticsGET /api/analytics/customers- Get customer analytics
id(UUID, Primary Key)name(String)email(String, Unique)password(String, Hashed)deviceId(String, Unique)isVerified(Boolean)balance(Decimal)lastLogin(DateTime)isActive(Boolean)
id(UUID, Primary Key)userId(UUID, Foreign Key)type(Enum: deposit, withdrawal)amount(Decimal)balanceBefore(Decimal)balanceAfter(Decimal)status(Enum: pending, completed, failed, cancelled)reference(String, Unique)
id(UUID, Primary Key)name(String)email(String, Unique)password(String, Hashed)role(Enum: super_admin, admin, moderator)permissions(JSON)isActive(Boolean)
# Server Configuration
PORT=4001
NODE_ENV=development
# Database
DATABASE_URL=postgresql://username:password@localhost:5432/credit_jambo_admin
# JWT Configuration
JWT_SECRET=your-super-secret-jwt-key-here
JWT_EXPIRES_IN=24h
# Admin Configuration
ADMIN_EMAIL=admin@creditjambo.com
ADMIN_PASSWORD=admin123
# Frontend URL
FRONTEND_URL=http://localhost:3001REACT_APP_API_URL=http://localhost:4001/api
REACT_APP_ENV=developmentcd backend
npm testcd frontend
npm test# Build and run with Docker Compose
docker-compose up -d# Backend
cd backend
npm run build
npm start
# Frontend
cd frontend
npm run build
# Serve the build folder with a web serverBuilt with ❤️ by Iris NGABO