Skip to content

School Payment Management System built with MERN. Includes secure JWT auth, real-time payment updates, webhooks, admin controls, and scalable APIs.

Notifications You must be signed in to change notification settings

akaash1024/ecolePay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Γ‰colePay - School Payment & Dashboard System

A comprehensive microservice-based school payment management system built with Node.js/Express backend and React.js frontend. This application provides seamless integration with payment gateways for managing school transactions, student payments, and administrative dashboards.

πŸ”— Live Applications

πŸ“‹ Table of Contents

✨ Features

Backend Features

  • JWT-based Authentication with trustee and student roles
  • Payment Gateway Integration with Edviron API
  • Webhook Processing for real-time payment status updates
  • MongoDB Integration with aggregation pipelines
  • RESTful API with comprehensive error handling
  • File Upload Support with Cloudinary integration
  • Security Implementation with input validation

Frontend Features

  • Responsive Dashboard with transaction management
  • Advanced Filtering & Sorting capabilities
  • Pagination for large datasets
  • Multi-select Filters for status and school IDs
  • URL State Persistence for shareable views
  • Modern UI/UX with Tailwind CSS

πŸ›  Tech Stack

Backend

  • Node.js with Express.js framework
  • MongoDB Atlas for database
  • Mongoose ODM for data modeling
  • JWT for authentication
  • Bcrypt for password hashing
  • Multer & Cloudinary for file uploads
  • Zod for input validation
  • CORS for cross-origin requests

Frontend

  • React.js 19 with modern hooks
  • Redux Toolkit for state management
  • React Router DOM for navigation
  • Axios for API communication
  • Tailwind CSS for styling
  • React Toastify for notifications
  • Vite for build tooling

API Testing with Postman

Import the provided Postman collection from postman_collection.json for comprehensive API testing.

πŸ— System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   React Client  │◄──►│  Express API    │◄──►│  MongoDB Atlas  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚ Payment Gateway β”‚
                    β”‚   (Edviron)     β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Installation

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • MongoDB Atlas account
  • Git

Backend Setup

# Clone the repository
git clone <your-repo-url>
cd ecolepay/backend

# Install dependencies
npm install

# Configure environment variables
cp .env.example .env
# Edit .env with your credentials

# Start development server
npm run dev

Frontend Setup

# Navigate to frontend directory
cd ../frontend

# Install dependencies
npm install

# Configure environment variables
cp .env.example .env
# Edit .env with your API endpoints

# Start development server
npm run dev

βš™οΈ Environment Configuration

Backend (.env)

# Database
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/ecolepay

# JWT Configuration
JWT_SECRET=your-super-secret-key
JWT_EXPIRE=7d

# Payment Gateway (Edviron)
PG_KEY=edvtest01
API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
SCHOOL_ID=65b0e6293e9f76a9694d84b4
PAYMENT_API_URL=https://dev-vanilla.edviron.com/erp

# Cloudinary (for file uploads)
CLOUDINARY_CLOUD_NAME=your-cloud-name
CLOUDINARY_API_KEY=your-api-key
CLOUDINARY_API_SECRET=your-api-secret

# Server Configuration
PORT=5000
NODE_ENV=production

Frontend (.env)

VITE_API_URL=https://ecolepay.onrender.com
VITE_APP_NAME=Γ‰colePay

πŸ“± Screenshots

Dashboard Overview

Screenshot 2025-09-23 151308 Screenshot 2025-09-23 151347 Screenshot 2025-09-23 151359 Screenshot 2025-09-23 151328

πŸ“ˆ Monitoring & Logging

  • Comprehensive Error Logging
  • Webhook Event Tracking
  • Payment Transaction Auditing
  • User Activity Logs

πŸš€ Deployment

Backend Deployment (Render)

  1. Connect GitHub repository to Render
  2. Configure environment variables
  3. Set build command: npm install
  4. Set start command: npm start

Frontend Deployment (Vercel)

  1. Connect GitHub repository to Vercel
  2. Configure environment variables
  3. Set build command: npm run build
  4. Set output directory: dist

🀝 Contributing

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“ž Support

For support and queries, please reach out to:


Built with ❀️ for Educational Institutions

About

School Payment Management System built with MERN. Includes secure JWT auth, real-time payment updates, webhooks, admin controls, and scalable APIs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages