Skip to content
dawstillPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

🎓 EduSync — Real-Time Faculty Scheduling Platform

Complete Setup Guide for B.Tech Project


📦 What You Get

  • Role-based login: Admin / Faculty / Student
  • Triple Conflict Detection: Faculty, Room & Section checks
  • Real-time updates via Firebase Firestore
  • Beautiful dark UI with grid timetable view
  • Full admin portal: Faculty, Departments, Rooms, Slot Assignment

🚀 STEP 1 — Create Firebase Project

  1. Go to https://console.firebase.google.com
  2. Click "Create a project"
  3. Name it: edusync (or anything)
  4. Enable Google Analytics: Optional
  5. Click Continue until project is created

🔥 STEP 2 — Enable Firebase Services

A) Authentication

  1. In Firebase Console → Build → Authentication
  2. Click "Get started"
  3. Click Email/Password → Enable → Save

B) Firestore Database

  1. In Firebase Console → Build → Firestore Database
  2. Click "Create database"
  3. Choose "Start in test mode" (we'll fix rules later)
  4. Choose a region close to you (e.g., asia-south1 for India)

⚙️ STEP 3 — Get Your Firebase Config

  1. In Firebase Console → Project Settings (gear icon)
  2. Scroll to "Your apps" → Click Web icon (</>)
  3. Register app name: EduSync Web
  4. Copy the firebaseConfig object

📝 STEP 4 — Update Your Config File

Open src/firebase.js and replace:

const firebaseConfig = {
  apiKey: "YOUR_API_KEY",              // ← paste your values here
  authDomain: "YOUR_PROJECT.firebaseapp.com",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_PROJECT.appspot.com",
  messagingSenderId: "YOUR_SENDER_ID",
  appId: "YOUR_APP_ID"
};

💻 STEP 5 — Install & Run

Open terminal in the edusync folder:

# Install all packages
npm install

# Start the app
npm start

The app opens at http://localhost:3000


🔐 STEP 6 — Create Your First Admin Account

  1. Go to http://localhost:3000
  2. Click Register tab
  3. Fill in:
    • Name: Admin User
    • Role: Admin
    • Email: admin@college.edu
    • Password: Admin@123
  4. Click Create Account
  5. You're logged in as Admin!

🛡️ STEP 7 — Fix Firestore Security Rules (Important!)

  1. In Firebase Console → Firestore → Rules
  2. Delete everything and paste content from firestore.rules file
  3. Click Publish

📋 STEP 8 — Seed Initial Data

As Admin, do this in order:

  1. Departments → Add CSE, IT, ECE, etc.
  2. Rooms → Add classrooms and labs
  3. Faculty → Add faculty with subjects
  4. Assign Slots → Create timetable entries

👥 Demo Accounts to Create

Role Email Password
Admin admin@edusync.edu Admin@123
Faculty faculty@edusync.edu Faculty@123
Student student@edusync.edu Student@123

Register all three, then view each dashboard for different experiences.


🏗️ Project Structure

edusync/
├── src/
│   ├── context/
│   │   └── AuthContext.js      # Login/Logout/User state
│   ├── pages/
│   │   ├── Login.js            # Auth page
│   │   ├── Timetable.js        # Grid + List view (all roles)
│   │   ├── admin/
│   │   │   ├── AdminDashboard.js
│   │   │   ├── FacultyManagement.js
│   │   │   ├── DepartmentManagement.js
│   │   │   ├── RoomsManagement.js
│   │   │   └── AssignSlot.js   # ← CONFLICT CHECKER HERE
│   │   ├── faculty/
│   │   │   └── FacultyDashboard.js
│   │   └── student/
│   │       └── StudentDashboard.js
│   ├── components/
│   │   └── Sidebar.js          # Navigation
│   ├── utils/
│   │   └── conflictChecker.js  # Triple-check engine
│   ├── firebase.js             # Firebase config ← EDIT THIS
│   ├── App.js                  # Routing
│   └── index.css               # Global styles
├── firestore.rules             # Security rules
└── package.json

🎯 Features by Role

👑 Admin

  • Dashboard with stats
  • Add/Edit/Delete Faculty with specializations
  • Add/Edit Departments with sections
  • Configure Rooms with amenities
  • Assign class slots with real-time triple conflict check
  • Full timetable view with filter

👨‍🏫 Faculty

  • Personal dashboard
  • Today's classes
  • Weekly teaching load chart
  • Subject summary
  • Full teaching schedule

🎓 Student

  • Select section (CSE-A, IT-B, etc.)
  • Today's classes with faculty & room info
  • Subject summary with teacher names
  • Full timetable view

🚀 Deploy to Vercel (Free Hosting)

# Install Vercel CLI
npm i -g vercel

# Build the project
npm run build

# Deploy
vercel --prod

📊 Firestore Data Schema

/users/{uid}
  name, email, role, department

/faculty/{id}
  name, email, phone, department, subjects[], designation, experience

/departments/{id}
  name, code, color, hod, sections[], totalStudents

/rooms/{id}
  name, type, capacity, building, floor, hasProjector, hasAC, hasComputers

/slots/{id}
  day, period, department, section, subject,
  facultyId, facultyName, roomId, roomName, type

❓ Common Issues

Q: "Firebase not initialized" error → Check src/firebase.js has your correct config values

Q: Login fails → Make sure Email/Password auth is enabled in Firebase Console

Q: Slots not saving → Check Firestore rules allow writes for admin role

Q: Changes not reflecting in real-time → Firebase should be auto-updating. Refresh if needed.


📝 Tech Stack (For Your Report)

Layer Technology Purpose
Frontend React 18 Component UI
Styling Custom CSS Dark theme design
Auth Firebase Auth Role-based login
Database Firestore Real-time NoSQL DB
Real-time onSnapshot() Live sync listeners
Routing React Router v6 SPA navigation
Notifications react-hot-toast User feedback
Hosting Vercel/Firebase Deployment

EduSync — Built for B.Tech Final Year Project

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors