Edu-Empower

About Edu-Empower

🔗 View on GitHub▶️ View on YouTube

Overview

Edu-Empower is a comprehensive platform designed to bridge the gap between students and educational funding resources. By creating a unified ecosystem for scholarships, crowdfunding, and donations, we aim to democratize access to educational opportunities and reduce financial barriers to education.

The platform serves three primary user groups:

  • Students seeking financial support for their education
  • Organizations offering scholarships and grants
  • Donors looking to contribute to educational causes

Through an intuitive interface and streamlined processes, Edu-Empower simplifies the discovery, application, and distribution of educational funding, making quality education more accessible to all.

Architecture

Edu-Empower follows a modern client-server architecture with clear separation of concerns:

Frontend

  • React.js single-page application
  • Responsive design using Tailwind CSS
  • Client-side routing with React Router
  • Authentication via Clerk

Backend

  • Node.js/Express.js RESTful API
  • MongoDB database for flexible data storage
  • JWT-based authentication
  • Microservices architecture for scalability

Key Features

For Students

  • Personalized Profile Management: Comprehensive student information management
  • Scholarship Discovery: Advanced search and filtering of scholarships
  • Scholarship Application: Streamlined application process with document upload
  • Application Tracking: Real-time status updates on submitted applications
  • Crowdfunding Campaigns: Tools to create and manage personal fundraising campaigns
  • Resource Center: Educational content on financial literacy

For Organizations

  • Organization Dashboard: Comprehensive administrative interface
  • Scholarship Creation: Tools to define eligibility criteria and requirements
  • Application Review: Streamlined process for reviewing applications
  • Applicant Management: Tools to track and communicate with applicants
  • Analytics: Insights on scholarship impact and applicant demographics

For Donors

  • Donation Portal: Secure payment processing for donations
  • Impact Tracking: Visibility into how donations are making a difference
  • Tax Documentation: Automated receipts for tax purposes

Platform-Wide

  • User Authentication & Role-Based Access: Secure login system
  • Responsive Design: Optimized for all device sizes
  • Accessibility Compliance: WCAG 2.1 AA standards
  • Multi-language Support: Internationalization framework

Tech Stack

Frontend

Framework: React.js 18Build Tool: ViteStyling: Tailwind CSSState Management: React Context APIRouting: React Router v6Authentication: Clerk

Backend

Runtime: Node.jsFramework: Express.jsDatabase: MongoDBODM: MongooseAuthentication: JWTFile Storage: AWS S3Email Service: SendGrid

DevOps

Containerization: DockerCI/CD: GitHub ActionsHosting: AWS/Azure/VercelMonitoring: Sentry

Development Tools

Version Control: GitPackage Manager: npmLinting: ESLintTesting: Jest, React Testing Library, Cypress

Installation

Prerequisites

  • Node.js (v14 or higher)
  • npm (v6 or higher)
  • Git
  • MongoDB (local or Atlas connection)
  • Docker (optional, for containerized development)

Clone the Repository

git clone https://github.com/akash202004/Edu-Empower.git cd Edu-Empower

Frontend Setup

cd Frontend npm install cp .env.example .env # Edit .env with your configuration

Backend Setup

cd Backend npm install cp .env.example .env # Edit .env with your configuration

Docker Setup (Optional)

docker-compose up -d

Development Workflow

Running the Frontend

cd Frontend npm run dev # The frontend will be available at http://localhost:5173.

Running the Backend

cd Backend npm run dev # The backend API will be available at http://localhost:5000.

Full Stack Development

# From the project root npm run dev

Code Quality

# Frontend linting cd Frontend npm run lint # Backend linting cd Backend npm run lint # Format code npm run format

Testing

# Frontend tests cd Frontend npm test # Backend tests cd Backend npm test # E2E tests npm run test:e2e

API Documentation

The Edu-Empower API follows RESTful principles and is organized around resources:

Authentication Endpoints

  • POST /api/auth/register - Register a new user
  • POST /api/auth/login - Authenticate a user
  • GET /api/auth/me - Get current user information

Student Endpoints

  • GET /api/students/:id - Get student profile
  • PUT /api/students/:id - Update student profile
  • GET /api/students/:id/applications - Get student's scholarship applications

Scholarship Endpoints

  • GET /api/scholarships - List all scholarships
  • GET /api/scholarships/:id - Get scholarship details
  • POST /api/scholarships - Create a new scholarship (Organization only)
  • PUT /api/scholarships/:id - Update a scholarship (Organization only)
  • POST /api/scholarships/:id/apply - Apply for a scholarship (Student only)

Organization Endpoints

  • GET /api/organizations/:id - Get organization profile
  • PUT /api/organizations/:id - Update organization profile
  • GET /api/organizations/:id/scholarships - Get organization's scholarships

Donation Endpoints

  • POST /api/donations - Process a donation
  • GET /api/donations/user/:id - Get user's donation history

For detailed API documentation, refer to the API Documentation file.

Deployment

Frontend Deployment

The frontend can be deployed to Vercel, Netlify, or any static hosting service:

cd Frontend npm run build # Deploy the dist directory to your hosting service.

Backend Deployment

The backend can be deployed to various cloud platforms:

Heroku Deployment

cd Backend heroku create edu-empower-api git push heroku main

Docker Deployment

docker build -t edu-empower-api ./Backend docker push edu-empower-api

Database Deployment

We recommend using MongoDB Atlas for production database hosting:

  • Create a MongoDB Atlas cluster
  • Configure network access and database users
  • Update the MONGODB_URI in your backend environment variables

Security

  • Authentication: Secure user authentication via Clerk and JWT
  • Authorization: Role-based access control for protected resources
  • Data Encryption: HTTPS for all communications
  • Input Validation: Thorough validation of all user inputs
  • Dependency Scanning: Regular scanning for vulnerable dependencies
  • Security Headers: Implementation of security headers
  • Rate Limiting: Protection against brute force attacks
  • CSRF Protection: Cross-Site Request Forgery protection

Performance Optimization

  • Code Splitting: Route-based code splitting to reduce initial load time
  • Lazy Loading: Components and images are loaded only when needed
  • Caching Strategy: Appropriate cache headers for static assets
  • Database Indexing: Strategic indexes for query performance
  • CDN Integration: Content delivery network for static assets
  • Compression: Response compression with gzip/brotli

Contributing

We welcome contributions to Edu-Empower! Please follow these steps:

  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

Contribution Guidelines

  • Follow the existing code style and naming conventions
  • Write tests for new features
  • Update documentation for any changed functionality
  • Ensure all tests pass before submitting a pull request
  • Reference relevant issues in pull request descriptions

Roadmap

Short-term Goals (Next 3 Months)

  • Enhance user profile management
  • Implement advanced scholarship search filters
  • Add document verification system
  • Improve mobile responsiveness

Medium-term Goals (3-6 Months)

  • Implement AI-powered scholarship matching
  • Add mentorship platform integration
  • Develop analytics dashboard for organizations
  • Support multiple languages

Long-term Goals (6+ Months)

  • Build community features for peer support
  • Implement blockchain-based credential verification
  • Develop mobile applications
  • Expand to international markets
Made with ❤️ by the Edu-Empower Team