Skip to content

sasindumal/ScholarSphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ ScholarSphere

A comprehensive scholarship management system that connects students, coordinators, and administrators in a seamless platform for managing scholarship applications, reviews, and payments.

🌟 Features

πŸ‘¨β€πŸŽ“ Student Features

  • πŸ“ 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

πŸ‘¨β€πŸ’Ό Coordinator Features

  • πŸ“‹ 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

πŸ‘¨β€πŸ’» Admin Features

  • πŸ‘₯ 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

πŸ› οΈ Tech Stack

Backend

  • πŸš€ Node.js - Runtime environment
  • ⚑ Express.js - Web framework
  • πŸ—„οΈ MySQL - Database
  • πŸ”§ Prisma - ORM and database toolkit
  • πŸ” JWT - Authentication
  • πŸ”’ bcryptjs - Password hashing
  • πŸ“ Multer - File upload handling

Frontend

  • βš›οΈ React.js - UI library
  • πŸ›£οΈ React Router - Client-side routing
  • 🎨 CSS3 - Styling
  • πŸ“± Responsive Design - Mobile-friendly interface

DevOps

  • 🐳 Docker - Containerization
  • πŸ“¦ Docker Compose - Multi-container orchestration

πŸ“‹ Prerequisites

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)

πŸš€ Installation

Option 1: Using Docker (Recommended)

  1. Clone the repository

    git clone https://github.com/yourusername/scholarsphere.git
    cd scholarsphere
  2. Set up environment variables

    # Create .env file in backend directory
    cp backend/.env.example backend/.env
    # Edit the .env file with your database credentials
  3. Run with Docker Compose

    docker-compose up --build
  4. Access the application

Option 2: Local Development

  1. Clone the repository

    git clone https://github.com/yourusername/scholarsphere.git
    cd scholarsphere
  2. Set up the database

    # Start MySQL service
    # Create database: scholarspheredb
  3. Install backend dependencies

    cd backend
    npm install
  4. Set up environment variables

    cp .env.example .env
    # Edit .env with your database credentials
  5. Run database migrations

    npx prisma migrate dev
    npx prisma generate
  6. Start the backend server

    npm start
  7. Install frontend dependencies

    cd ../frontend
    npm install
  8. Start the frontend application

    npm start

πŸ“Š Database Schema

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

πŸ” Authentication & Authorization

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

πŸ“± API Endpoints

Authentication

  • POST /api/auth/signup - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/forgot-password - Password reset
  • PUT /api/auth/password - Update password

Users

  • GET /api/user/profile - Get user profile
  • PUT /api/user/profile - Update user profile

Scholarships

  • GET /api/scholarships - Get all scholarships
  • GET /api/scholarships/:id - Get specific scholarship
  • POST /api/scholarships - Create scholarship (admin/coordinator)
  • PUT /api/scholarships/:id - Update scholarship

Applications

  • GET /api/applications - Get user applications
  • POST /api/applications - Submit application
  • GET /api/applications/:id - Get specific application
  • PUT /api/applications/:id - Update application

Payments

  • GET /api/payments/history - Get payment history
  • GET /api/payments/total - Get total payments

🎨 UI/UX Features

  • πŸ“± 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

πŸ§ͺ Testing

# Run backend tests
cd backend
npm test

# Run frontend tests
cd frontend
npm test

πŸ“¦ Deployment

Production Build

# Build frontend for production
cd frontend
npm run build

# Start production server
cd backend
npm start

Environment Variables

Create a .env file in the backend directory:

DATABASE_URL="mysql://username:password@localhost:3306/scholarspheredb"
JWT_SECRET="your-secret-key"
PORT=5001

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some 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

If you have any questions or need support, please:

πŸ”„ Version History

  • 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!

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages