Skip to content

SpicychieF05/semester-hub

Repository files navigation

πŸŽ“ Semester Hub

Semester Hub Logo

πŸŽ“ Your Premier Academic Note-Sharing Platform

React Supabase Tailwind CSS Vercel License

Live Demo

Empowering students through collaborative learning and secure knowledge sharing


🌟 Overview

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.


πŸš€ Key Features

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

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

πŸ‘¨β€πŸ’Ό Admin Dashboard

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

πŸ› οΈ Tech Stack

Frontend Backend & Auth Styling & Icons Deployment

React 18
Modern functional components

Supabase
Auth, Database, RLS, Real-time

Tailwind CSS
Responsive design system

Vercel Ready
Optimized deployment

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

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Supabase account
  • Google Cloud Console (for OAuth)

Installation

  1. Clone the repository

    git clone https://github.com/SpicychieF05/semester-hub.git
    cd semester-hub
  2. Install dependencies

    npm install
  3. 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
  4. Configure Environment Variables

    • Update src/supabase.js with your Supabase URL and anon key
    • Set up Google OAuth credentials
  5. Run the development server

    npm start
  6. Build for production

    npm run build

πŸ“ Project Structure

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

🎯 Core Workflows

πŸ“ Note Sharing Process

  • 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

πŸ” Authentication Flow

  • User can browse notes without login
  • Downloading notes prompts login (Supabase Auth)
  • Google OAuth available for quick sign-up
  • Authenticated users get full access

🎨 UI/UX Features

  • 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

πŸš€ Deployment

  • Deploy on Vercel using vercel --prod
  • Production build: npm run build
  • Environment variables for Supabase in .env.local
  • See vercel.json for custom config

⚑ Recent Optimizations (v2.2.0)

  • 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

🎨 Visual Enhancements

  • 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

🧹 Code Optimization

  • 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
  • File Structure Optimization: Removed unnecessary files
    • ❌ Removed unused FormComponents.js
    • ❌ Removed deploy-check.bat (not needed for Vercel)
  • Bundle Size Reduction: ~2MB smaller production build

πŸš€ Vercel Optimization

  • 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.example with all required variables
  • Performance Improvements: Better caching headers and static asset optimization

πŸ“Š Performance Metrics

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

πŸ”§ Technical Improvements

  • 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

πŸ‘¨β€πŸ’» Developer Information

πŸš€ Built with ❀️ by Chirantan Mallick

  • πŸŽ“ BCA 3rd Year Student at Seacom Skills University
  • πŸ’» Full Stack Developer specializing in React & Modern Web Technologies
  • 🌟 Open Source Enthusiast passionate about education technology

πŸ“ž Connect with Developer

GitHub LinkedIn WhatsApp


🀝 Contributing

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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ†˜ Support & Help

If you encounter any issues or have questions:

  1. Check the Issues: Look through existing GitHub issues
  2. Contact Developer: Use the contact information above
  3. Documentation: Review this README for setup instructions
  4. Community: Join our Discord community for help

πŸ› Bug Report Feature

Semester Hub includes a built-in bug reporting system that allows users to report issues directly through the platform:

🎯 How It Works

  • 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

πŸ“ Reporting Process

  1. Login Required: Users need to authenticate before reporting bugs
  2. Access via Footer: Click "Bug Report" in the Contact & Support section
  3. Fill Details: Provide page information and detailed bug description
  4. Submit: Report is sent directly to mallickchirantan@gmail.com
  5. Follow-up: Developer can respond directly for resolution

πŸ›‘οΈ Security & Privacy

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


πŸ† Acknowledgments

πŸ™ Special Thanks

  • 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

🌟 Inspiration

This project was inspired by the need for a secure, modern, and user-friendly platform for academic collaboration among students.


πŸŽ“ Semester Hub - Empowering Education Through Technology

Built with ❀️ by Chirantan Mallick

⭐ Star this repo 🍴 Fork this repo


Last updated: September 2025 (v2.2.0)

About

Semester Hub A secure academic note-sharing platform built with React, Supabase, and Tailwind CSS. Features authentication-protected downloads, responsive design with glass morphism UI, comprehensive admin moderation system, and real-time search functionality for collaborative student learning.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages