FYCS Study Hub is a modern, mobile-first web application designed to help First Year Computer Science students access study materials — notes, practicals, PYQs, and assignments — organized by semester and subject.
It features Google Authentication, an admin panel for uploading materials, an AI assignment assistant, and real-time visitor analytics powered by Firebase.
| Feature | Description |
|---|---|
| 📖 Semester-wise Library | Browse materials organized across 4 semesters and their subjects |
| 🔐 Google Sign-In | Secure, one-tap login via Firebase Authentication |
| 📤 Admin Upload Panel | Admins can upload and manage study materials |
| 🤖 AI Assignment Assistant | Quick access to ChatGPT & Gemini bots for assignment help |
| 🔍 Search | Find materials across all semesters and subjects instantly |
| 📊 Analytics | Daily visitor tracking using Firestore |
| 🚫 Ban Management | Admins can ban/unban users from the platform |
| 📱 Responsive Design | Optimized for mobile and desktop with a sleek dark UI |
| Layer | Technology |
|---|---|
| Frontend Framework | React 19 + Vite 7 |
| Styling | Tailwind CSS 4 |
| Routing | React Router DOM 7 |
| Backend / Database | Firebase Firestore |
| Authentication | Firebase Auth (Google Provider) |
| Icons | Lucide React · React Icons |
| Notifications | React Hot Toast · SweetAlert2 |
| Deployment | GitHub Pages via gh-pages |
FYCS-Study-Hub/
├── public/ # Static assets (logo, favicon, sitemap)
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Navbar.jsx
│ │ ├── MaterialCard.jsx
│ │ ├── SubjectCard.jsx
│ │ ├── DownloadModal.jsx
│ │ ├── LoadingSpinner.jsx
│ │ ├── Logo.jsx
│ │ ├── ProtectedRoute.jsx
│ │ └── admin/ # Admin-specific components
│ ├── context/ # React Context providers
│ ├── data/ # Static data (semesters, subjects, materials)
│ ├── pages/ # Route-level page components
│ │ ├── Home.jsx
│ │ ├── Login.jsx
│ │ ├── Library.jsx
│ │ ├── Semesters.jsx
│ │ ├── Subjects.jsx
│ │ ├── Materials.jsx
│ │ ├── Upload.jsx
│ │ ├── Admin.jsx
│ │ ├── Profile.jsx
│ │ ├── Search.jsx
│ │ └── BannedPage.jsx
│ ├── utils/ # Utility / helper functions
│ ├── firebase.js # Firebase initialization
│ ├── App.jsx # Root application component & routing
│ └── main.jsx # React entry point
├── index.html
├── vite.config.js
├── tailwind.config.js
└── package.json
- Node.js ≥ 18 and npm ≥ 9
- A Firebase project with Firestore and Google Authentication enabled
# 1. Clone the repository
git clone https://github.com/rishiuttamsahu-lang/FYCS-Study-Hub.git
cd FYCS-Study-Hub
# 2. Install dependencies
npm install- Go to the Firebase Console and create a new project.
- Enable Firestore Database and Authentication → Google provider.
- Copy your project's Firebase config and update
src/firebase.js:
const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.firebasestorage.app",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};npm run devOpen http://localhost:5173 in your browser.
npm run buildThe production-ready files will be output to the dist/ directory.
The project is configured for GitHub Pages deployment.
# Build and deploy to GitHub Pages
npm run deployMake sure the
homepagefield inpackage.jsonpoints to your GitHub Pages URL before deploying.
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name - Make your changes and commit:
git commit -m 'feat: add your feature' - Push to the branch:
git push origin feature/your-feature-name - Open a Pull Request
This project is open-source. Feel free to use, modify, and distribute it with attribution.
