Empowering Sri Lankan students with free, community-driven study resources and tools.
BrightMindAid is an open-source web platform designed specifically to democratize education for Sri Lankan students. It provides a centralized, community-driven hub to access, share, and request study materials, including notes, past papers, revision cards, and curated video tutorials.
For recruiters, developers, and potential contributors: This project demonstrates a complete full-stack web application with secure authentication, complex database relationships, storage management, and a highly responsive, modern user interface.
- 📚 Resource Library: Browse and search for notes, past papers, marking schemes, and more, efficiently organized by grade, subject, and type.
- 🤝 Community Contributions: Authenticated users can seamlessly upload and share their own study materials to help others.
- 🙋 Request Board: Can't find what you need? Request specific notes or resources, and upvote existing requests from peers.
- 📊 Impact Dashboard: Visualize community impact! Track contributions, global downloads, and fulfilled student requests in real-time.
- 📅 Study Planner: A built-in tool that allows students to schedule their study sessions and track their progress over time.
- 🗂️ Revision Cards: Quick-access flashcards specifically tailored for key concepts in major O/L and A/L subjects.
- 📺 Video Tutorials: Seamlessly curated and embedded YouTube resources specifically suited for the Sri Lankan syllabus.
- 💖 Thank You Wall: A dedicated space to share gratitude and feedback with active contributors.
- 📱 PWA & Mobile-First: Installable as a Progressive Web App (PWA) with a fluid, responsive UI built on Tailwind CSS.
BrightMindAid is built with modern web technologies, focusing on performance, scalability, and an exceptional developer experience (DX).
- Framework: React 19 + Vite (for lightning-fast HMR and optimized builds)
- Styling: Tailwind CSS v4 (utility-first, responsive design system)
- Icons: Lucide React (clean, consistent SVG icons)
- Routing: React Router v7 (powerful client-side routing)
- PWA Capabilities:
vite-plugin-pwafor offline support, caching, and mobile installability
- Platform: Supabase (an open-source Firebase alternative)
- Database: PostgreSQL (with Row Level Security - RLS for strict data protection)
- Authentication: Supabase Auth (Supporting Email/Password and scalable identity management)
- Storage: Supabase Storage (for securely hosting uploaded study materials, PDFs, and metadata)
- Hosting: GitHub Pages & Firebase Hosting
- CI/CD: Automated builds and static deployments configured via
gh-pagesand modern scripts.
BrightMindAid/
├── public/ # Static assets, robots.txt, sitemap
├── src/
│ ├── components/ # Reusable UI components (Header, Footer, Hero, NoteCard, etc.)
│ ├── lib/ # Supabase client configurations and global SEO definitions
│ ├── pages/ # Main application pages (Browse, RequestBoard, etc.)
│ ├── App.jsx # Main app router and layout configuration
│ └── main.jsx # React strict mode entry point
├── database_updates.sql # Incremental database updates
├── supabase_schema.sql # Core PostgreSQL database schema & RLS policies
├── firebase.json # Firebase hosting configuration (limits, rewrites & redirects)
├── tailwind.config.js # Custom theme scaling and brand colors
└── package.json # Dependencies and npm scripts definitions
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
Ensure you have the following installed:
- Node.js (v18.0.0 or higher recommended)
npmoryarn
-
Clone the repository:
git clone https://github.com/sithija-jayasinghe/BrightMindAid.git cd BrightMindAid -
Install dependencies:
npm install # or yarn install -
Configure your Supabase Project:
- Create a new project at Supabase.
- Navigate to the SQL Editor and execute the contents of
supabase_schema.sql(and its updates) to generate the necessary tables and Row Level Security (RLS) policies. - Go to Storage and create a new public bucket named
study-materials. - Retrieve your Project URL and anon key from Project Settings > API.
-
Environment Variables:
- Create a
.envfile in the root directory. - Add your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_url VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Create a
-
Start the development server:
npm run dev # or yarn dev -
View the Application: Open http://localhost:5173 in your browser to see the app live.
The project includes pre-configured scripts for rapid deployment to GitHub Pages.
- Build the production assets:
npm run build
- Deploy the
distfolder:npm run deploy
If you prefer Firebase Hosting, ensure you have the Firebase CLI installed (npm i -g firebase-tools).
- Log in to Firebase:
firebase login - Initialize your project:
firebase init hosting - Deploy:
firebase deploy
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated!
If you have a suggestion that would make BrightMindAid better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. (Please see the repository for more specific licensing details if applicable).
- Supabase - For providing a reliable and robust backend infrastructure.
- React, Vite, and Tailwind CSS for an incredible frontend development foundation.
- Lucide Icons for gorgeous, consistent iconography.
- The phenomenal Sri Lankan Student Community—this project exists for you, and because of you!
Together We Learn & Together We Grow 🇱🇰