Skip to content

Edu-Empower is an AI-driven crowdfunding and scholarship platform providing financial aid, donor matching, and mentorship.

License

Notifications You must be signed in to change notification settings

akash202004/edu-empower

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Edu-Empower

Edu-Empower Logo

Democratizing Access to Educational Funding and Support

OverviewArchitectureKey FeaturesTech StackProject StructureInstallationDevelopment WorkflowAPI DocumentationDeploymentContributingLicense

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 18
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • State Management: React Context API
  • Routing: React Router v6
  • Authentication: Clerk

Backend

  • Runtime: Node.js
  • Framework: Express.js
  • Database: MongoDB
  • ODM: Mongoose
  • Authentication: JWT
  • File Storage: AWS S3
  • Email Service: SendGrid

DevOps

  • Containerization: Docker
  • CI/CD: GitHub Actions
  • Hosting: AWS/Azure/Vercel
  • Monitoring: Sentry

Development Tools

  • Version Control: Git
  • Package Manager: npm
  • Linting: ESLint
  • Testing: Jest, React Testing Library, Cypress

Project Structure

Edu-Empower/
├── Frontend/                # React frontend application
│   ├── public/              # Static assets
│   ├── src/                 # Source code
│   │   ├── Component/       # UI components
│   │   ├── hooks/           # Custom React hooks
│   │   ├── services/        # API service integrations
│   │   ├── utils/           # Utility functions
│   │   ├── App.jsx          # Main application component
│   │   └── main.jsx         # Application entry point
│   ├── package.json         # Frontend dependencies
│   └── README.md            # Frontend documentation
├── Backend/                 # Node.js backend application
│   ├── src/
│   │   ├── controllers/     # Request handlers
│   │   ├── models/          # Database models
│   │   ├── routes/          # API routes
│   │   ├── middleware/      # Custom middleware
│   │   ├── services/        # Business logic
│   │   ├── utils/           # Utility functions
│   │   └── app.js           # Express application setup
│   ├── package.json         # Backend dependencies
│   └── README.md            # Backend documentation
├── docker-compose.yml       # Docker composition for local development
├── .github/                 # GitHub configuration
│   └── workflows/           # CI/CD workflows
├── .gitignore               # Git ignore rules
├── LICENSE                  # Project license
└── README.md                # Main project documentation

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

For concurrent development of both frontend and backend:

# From the project root
npm run dev

Code Quality

We maintain high code quality standards through linting and formatting:

# Frontend linting
cd Frontend
npm run lint

# Backend linting
cd Backend
npm run lint

# Format code
npm run format

Testing

We employ comprehensive testing strategies:

# 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:

  1. Build the frontend:

    cd Frontend
    npm run build
  2. 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:

  1. Create a MongoDB Atlas cluster
  2. Configure network access and database users
  3. Update the MONGODB_URI in your backend environment variables

Security

Edu-Empower implements several security measures:

  • 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

About

Edu-Empower is an AI-driven crowdfunding and scholarship platform providing financial aid, donor matching, and mentorship.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •