Semester Hub is a modern, secure, and feature-rich platform designed for students to share, discover, and access high-quality academic notes. Built with React 18, Supabase, and Tailwind CSS, it offers a seamless experience across all devices while maintaining robust security and authentication systems.
| Feature | Description | Status |
|---|---|---|
| π Browse Notes | Search and filter academic notes by subject, semester, and keywords | β Active |
| π Advanced Search | Real-time search with instant filtering and sorting options | β Active |
| π₯ Secure Downloads | Login required to download notes - browse freely, download securely | β Active |
| π€ Share Notes | Upload your own notes with detailed descriptions and tags | β Active |
| π User Authentication | Secure registration and login with Supabase Auth + Google OAuth | β Active |
| π± Mobile Optimized | Perfect experience on all device types and screen sizes | β Active |
| π« Interactive UI | Smooth animations, hover effects, and visual feedback | β Active |
| π€ User Profiles | Personalized user profiles with activity tracking | β Active |
| Feature | Description | Status |
|---|---|---|
| π Analytics Dashboard | Real-time insights into platform usage and statistics | β Active |
| π₯ User Management | Create, ban, unban users with role-based permissions | β Active |
| π Note Moderation | Approve, reject, or delete submitted notes | β Active |
| π‘οΈ Admin Creation | Secure admin account creation with proper authorization | β Active |
| π Activity Logs | Track all admin actions and user activities | β Active |
| π Security Features | Row-level security policies and protected routes | β Active |
Additional Technologies:
- React Router DOM 6: Modern client-side routing
- Lucide React: Beautiful, customizable icons
- Supabase JS: Backend-as-a-Service integration
- PostCSS & Autoprefixer: Enhanced CSS processing
- Node.js (v16 or higher)
- npm or yarn
- Supabase account
- Google Cloud Console (for OAuth)
-
Clone the repository
git clone https://github.com/SpicychieF05/semester-hub.git cd semester-hub -
Install dependencies
npm install
-
Set up Supabase
- Create a new Supabase project at https://supabase.com
- Enable Authentication (Email/Password and Google)
- Create necessary database tables
- Configure Row Level Security (RLS) policies
-
Configure Environment Variables
- Update
src/supabase.jswith your Supabase URL and anon key - Set up Google OAuth credentials
- Update
-
Run the development server
npm start
-
Build for production
npm run build
semester-hub/
βββ public/
β βββ index.html
β βββ manifest.json
β βββ robots.txt
β βββ _redirects
β βββ images/
β βββ favicon.png
β βββ hero-image.gif
β βββ sm-logo.png
βββ src/
β βββ App.js
β βββ index.css
β βββ index.js
β βββ supabase.js
β βββ components/
β β βββ AuthCallback.js
β β βββ BugReportModal.js
β β βββ ErrorBoundary.js
β β βββ Footer.js
β β βββ LoadingScreen.js
β β βββ LoadingSpinner.js
β β βββ Modal.js
β β βββ Navbar.js
β β βββ PrivacyPolicyModal.js
β β βββ ProtectedAdminRoute.js
β β βββ TermsOfServiceModal.js
β β βββ ThemeToggle.js
β β βββ ToastContainer.js
β βββ context/
β β βββ AppContext.js
β β βββ ThemeContext.js
β βββ pages/
β β βββ AdminDashboard.js
β β βββ AdminLogin.js
β β βββ AdminSetup.js
β β βββ BrowseNotes.js
β β βββ HomePage.js
β β βββ Login.js
β β βββ NoteDetail.js
β β βββ Register.js
β β βββ ShareNotes.js
β βββ services/
β βββ supabaseService.js
βββ package.json
βββ tailwind.config.js
βββ postcss.config.js
βββ vercel.json
βββ LICENSE
βββ README.md
βββ deploy.sh
- Student uploads note via ShareNotes page
- Note stored in Supabase Storage, metadata in DB
- Admin reviews note in AdminDashboard
- If approved, note is published and available for download
- If rejected, note is deleted
- User can browse notes without login
- Downloading notes prompts login (Supabase Auth)
- Google OAuth available for quick sign-up
- Authenticated users get full access
- Responsive design for all devices
- Custom components: Navbar, Footer, Modals, CustomCheckbox
- Animated hero section and loading screens
- Modern icons (Lucide)
- Accessible forms with validation and feedback
- Modals for Terms of Service, Privacy Policy, Bug Report
- Deploy on Vercel using
vercel --prod - Production build:
npm run build - Environment variables for Supabase in
.env.local - See
vercel.jsonfor custom config
- Improved Terms of Service and Privacy Policy modals for consistent UX
- Updated README formatting and project structure section
- Enhanced registration flow and user profile logic
- Further reduced bundle size and optimized build process
- Minor UI/UX tweaks for accessibility and responsiveness
- Text Glow Effects: Added stunning glow effects to hero section text elements
- Dynamic neon white glow for dark theme
- Subtle blue glow for light theme
- Smooth transitions between theme changes
- Enhanced Button Styling: Improved button hover effects with glow shadows
- Theme-Responsive Styling: Better contrast and visibility across both themes
- Dependency Cleanup: Removed unused dependencies to reduce bundle size
- β Removed
firebase(9.9.0) - Not being used - β Removed
react-firebase-hooks(5.0.3) - Not being used - π¦ Moved testing libraries to devDependencies for cleaner production builds
- β Removed
- File Structure Optimization: Removed unnecessary files
- β Removed unused
FormComponents.js - β Removed
deploy-check.bat(not needed for Vercel)
- β Removed unused
- Bundle Size Reduction: ~2MB smaller production build
- Updated Node.js Version: Bumped minimum Node.js version to 18.x for better performance
- Enhanced .vercelignore: Optimized file exclusions for faster deployments
- Environment Variables: Added comprehensive
.env.examplewith all required variables - Performance Improvements: Better caching headers and static asset optimization
| Metric | Before | After | Improvement |
|---|---|---|---|
| Bundle Size | ~13MB | ~12MB | β¬οΈ 8% smaller |
| Dependencies | 8 | 7 | β¬οΈ 12% fewer |
| Build Time | ~35s | ~30s | β¬οΈ 14% faster |
| First Load | ~2.8s | ~2.5s | β¬οΈ 11% faster |
- Custom Tailwind Utilities: Added text shadow utilities for glow effects
- Theme Transition Timing: Optimized transition durations (800ms) for smooth theme switching
- CSS Optimization: Better use of CSS custom properties for theme variables
- Type Safety: Enhanced prop validation and error handling
- π BCA 3rd Year Student at Seacom Skills University
- π» Full Stack Developer specializing in React & Modern Web Technologies
- π Open Source Enthusiast passionate about education technology
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- 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
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the Issues: Look through existing GitHub issues
- Contact Developer: Use the contact information above
- Documentation: Review this README for setup instructions
- Community: Join our Discord community for help
Semester Hub includes a built-in bug reporting system that allows users to report issues directly through the platform:
- User-Friendly Interface: Accessible bug report modal in the footer section
- Authentication Required: Users must be logged in to submit bug reports
- Direct Communication: Reports are sent directly to the developer's email
- Detailed Information: Includes user information and timestamp for better support
- Login Required: Users need to authenticate before reporting bugs
- Access via Footer: Click "Bug Report" in the Contact & Support section
- Fill Details: Provide page information and detailed bug description
- Submit: Report is sent directly to
mallickchirantan@gmail.com - Follow-up: Developer can respond directly for resolution
- User information is only collected for support purposes
- Reports include user name, email, and timestamp
- No sensitive data is transmitted
- Used exclusively for bug tracking and resolution
This feature ensures quick communication between users and the development team, enabling faster bug fixes and platform improvements.
- React Team - For the amazing React framework
- Supabase Team - For the powerful backend-as-a-service platform
- Tailwind CSS - For the beautiful design system
- Lucide - For the elegant icon system
- Vercel - For seamless deployment platform
This project was inspired by the need for a secure, modern, and user-friendly platform for academic collaboration among students.
