A comprehensive scholarship management system that connects students, coordinators, and administrators in a seamless platform for managing scholarship applications, reviews, and payments.
- π Application Management: Submit and track scholarship applications
- π― Available Scholarships: Browse and filter available scholarship opportunities
- π Dashboard: View application status, payments, and statistics
- π Document Upload: Upload required documents for applications
- π° Payment Tracking: Monitor scholarship payments and history
- π Notifications: Real-time updates on application status
- π€ Profile Management: Update personal and academic information
- π Application Review: Review and evaluate student applications
- π Reports & Analytics: Generate comprehensive reports
- π₯ Student Management: Manage student profiles and information
- π Scholarship Management: Oversee scholarship programs
- π Committee Reviews: Coordinate review processes
- π₯ User Management: Manage all system users
- π’ Provider Management: Manage scholarship providers
- βοΈ System Settings: Configure system parameters
- π³ Payment Administration: Oversee payment processes
- π System Analytics: Comprehensive system overview
- π Node.js - Runtime environment
- β‘ Express.js - Web framework
- ποΈ MySQL - Database
- π§ Prisma - ORM and database toolkit
- π JWT - Authentication
- π bcryptjs - Password hashing
- π Multer - File upload handling
- βοΈ React.js - UI library
- π£οΈ React Router - Client-side routing
- π¨ CSS3 - Styling
- π± Responsive Design - Mobile-friendly interface
- π³ Docker - Containerization
- π¦ Docker Compose - Multi-container orchestration
Before running this application, make sure you have the following installed:
- Node.js (v16 or higher)
- npm or yarn
- Docker and Docker Compose
- MySQL (if running locally)
-
Clone the repository
git clone https://github.com/yourusername/scholarsphere.git cd scholarsphere -
Set up environment variables
# Create .env file in backend directory cp backend/.env.example backend/.env # Edit the .env file with your database credentials
-
Run with Docker Compose
docker-compose up --build
-
Access the application
- Frontend: http://localhost:3000
- Backend API: http://localhost:5001
- Database: localhost:3306
-
Clone the repository
git clone https://github.com/yourusername/scholarsphere.git cd scholarsphere -
Set up the database
# Start MySQL service # Create database: scholarspheredb
-
Install backend dependencies
cd backend npm install -
Set up environment variables
cp .env.example .env # Edit .env with your database credentials -
Run database migrations
npx prisma migrate dev npx prisma generate
-
Start the backend server
npm start
-
Install frontend dependencies
cd ../frontend npm install -
Start the frontend application
npm start
The application uses a comprehensive database schema with the following main entities:
- π€ Users - Authentication and role management
- π Students - Student profiles and information
- π Scholarships - Available scholarship programs
- π Applications - Student scholarship applications
- π Documents - Application supporting documents
- π¨βπ©βπ§βπ¦ Family Members - Student family information
- π° Payments - Scholarship payment tracking
- π Reviews - Application review process
- π Notifications - System notifications
The system implements role-based access control with three user roles:
- π¨βπ Student: Can submit applications, view scholarships, track payments
- π¨βπΌ Coordinator: Can review applications, manage students, generate reports
- π¨βπ» Admin: Can manage users, providers, system settings
POST /api/auth/signup- User registrationPOST /api/auth/login- User loginPOST /api/auth/forgot-password- Password resetPUT /api/auth/password- Update password
GET /api/user/profile- Get user profilePUT /api/user/profile- Update user profile
GET /api/scholarships- Get all scholarshipsGET /api/scholarships/:id- Get specific scholarshipPOST /api/scholarships- Create scholarship (admin/coordinator)PUT /api/scholarships/:id- Update scholarship
GET /api/applications- Get user applicationsPOST /api/applications- Submit applicationGET /api/applications/:id- Get specific applicationPUT /api/applications/:id- Update application
GET /api/payments/history- Get payment historyGET /api/payments/total- Get total payments
- π± Responsive Design: Works seamlessly on desktop, tablet, and mobile
- π¨ Modern Interface: Clean and intuitive user interface
- β‘ Real-time Updates: Live notifications and status updates
- π Advanced Filtering: Search and filter scholarships and applications
- π Data Visualization: Charts and statistics for better insights
# Run backend tests
cd backend
npm test
# Run frontend tests
cd frontend
npm test# Build frontend for production
cd frontend
npm run build
# Start production server
cd backend
npm startCreate a .env file in the backend directory:
DATABASE_URL="mysql://username:password@localhost:3306/scholarspheredb"
JWT_SECRET="your-secret-key"
PORT=5001- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you have any questions or need support, please:
- π§ Email: 2022e126@eng.jfn.ac.lk
- π Report bugs: GitHub Issues
- π¬ Discussions: GitHub Discussions
- v1.0.0 - Initial release with core features
- v1.1.0 - Added payment tracking and notifications
- v1.2.0 - Enhanced reporting and analytics
- v1.3.0 - Mobile responsiveness improvements
β Star this repository if you find it helpful!