Academic Task Scheduler - A modern Single Page Application (SPA) designed for university students, class representatives (CRs), and faculty members to organize and track academic tasks, routines, assignments, exams, and notices with department-specific personalization.
π Complete Documentation π
Current Version: v2.53.0 to v2.53.14 β’
Architecture: Vanilla JS SPA + Firebase Firestore & Auth + PWA
- Flexible Credential Login: Students can log in with their Student ID (normalized across string, numeric, and formatted inputs with dashes/spaces) or Email. Faculty can log in with their Faculty ID, initials (case-insensitive), or Email.
- Segmented Role Toggles: Dedicated Student and Faculty login tabs with strict cross-role enforcement (prevents student accounts from authenticating via the faculty tab and vice versa).
- Onboarding Role Lockdown: After initial signup, role identity is locked on the details setup screen, ensuring students cannot bypass section assignments or switch to faculty post-registration.
- 6-Tier Role System:
Student- View personalized section tasks, export tasks, take markdown notes, and sync personal Google Classroom assignments.CR(Class Representative) - Create, edit, and manage section tasks, deadlines, and group notices.Faculty- Create and manage departmental tasks, access Faculty Classroom, and post department-wide notices.DptCoor(Department Coordinator) - Faculty privileges plus account review, approvals, and role elevation within their department.DptHead(Department Head) - Comprehensive departmental oversight and coordinator capabilities.Admin- Complete platform administration, user management, account approvals, role assignments, UID lookups, and the Admin Role Preview Mode (simulate any role with a real-time floating indicator).
- Faculty Self-Registration & Approvals: Faculty self-register with pending status until approved by an Admin or Department Coordinator via the interactive Approvals modal.
- Personalized Task Feed: Automatic task filtering based on Department, Semester, and Section Group (
A1+A2,B1+B2, etc.). - Overdue Grace Period: Retains tasks in the active feed for a 12-hour grace period after the deadline passes before archiving.
- Desktop Single-Row Layout: Coordinated action row for
Add Tasks,View Old, andReset Taskson desktop screens. - Mobile-Responsive Task Actions & Filters:
- Compact button labels on mobile (
Add,Old,Reset). - Mobile compact dropdown filter (
Filters: [Set Filter] [Clear]) synchronized bi-directionally with desktop radio pill buttons.
- Compact button labels on mobile (
- Task Identification: Copyable Firebase Task UIDs and timestamps for reliable reference and verification.
- UITS Event Raiders Syndication: Live syndication of hackathons, contests, symposiums, and tech events from
ou1ts/eventsRSS/JSON feeds with desktop sticky sidebar integration and mobile toggle view switchers. - Google Classroom Integration:
- Unified course stream showing assignments, materials, and announcements with OAuth session persistence.
- 3-group status layout (Assigned, Missing, Turned In / Graded) with chronological upcoming deadline priority and "Past deadline" visual divider banners.
- Strict turn-in verification for automatic task completion.
- Decoupled Classroom sync briefing summaries and quick announcement/assignment posting for Faculty and CRs.
- University & CR Notices: Real-time section notices posted by CRs and department notices posted by Faculty, alongside a UCAM university notice viewer with inline PDF preview via a Vercel serverless backend.
- Rich Markdown Notes: Personal note-taking module with auto-save, search, formatting tools, and temporary file hosting (Catbox.moe / Tmpfiles.org).
- LocalSend Web Integration: Direct peer-to-peer note and file sharing over local Wi-Fi networks without internet bandwidth overhead.
- Task Export: Export tasks to clean PDF, Markdown (.md), or Plain Text (.txt) with full Unicode Bangla font support, embedded hyperlinks, active type filter support, and dedicated Old Tasks pagination.
- Activity Timeline: Interactive contribution heatmap and activity breakdown charts tracking tasks, events, and login frequency.
- Curated Multi-Theme System:
- Light Mode: Clean, high-contrast default theme for unauthenticated visitors and public views.
- Dark Mode: Charcoal base (
#1a1a1a) with vibrant blue accents (#3b82f6) and elevated cards. - High Contrast: Pitch black base (
#000000) with vibrant neon green accents (#89d134). - System Default: Automatically synchronizes with OS color preferences.
- Live theme preview selector in Profile Settings.
- Changelog Modal ("What's New in b1t-Sched"): Responsive modal with a desktop min-width (
600px) and version badge hierarchy. - Viewport Scroll Stability: Enforced manual browser scroll restoration and instant scroll-to-top resets on SPA route navigation, user sign-out, and unauthenticated redirects.
- Offline Resilient: Service worker (
v2.53.14) caches static assets, dynamic layouts, and recent task data for seamless offline usage. - Adaptive Offline Banner: Dynamic top banner that pushes navigation and views downward without overlaying or obscuring interactive elements.
- PWA Installation: Installable desktop and mobile app with a customized 3-row install prompt (Icon + Title, Description, Action Buttons) featuring solid backgrounds across all themes.
All JavaScript modules are categorized into distinct architectural directories:
b1t-Sched/
βββ index.html # Single Page Application entry point
βββ manifest.json # PWA Web App Manifest
βββ sw.js # Service Worker (v2.53.14 caching & background sync)
βββ changes.json # Machine-readable release changelog history
βββ firestore.rules # Firestore Cloud Security Rules & role helpers
βββ README.md # Project overview & documentation
β
βββ css/ # Modular Stylesheets
β βββ colors.css # Color tokens & theme palettes (Light, Dark, High Contrast)
β βββ main.css # Base resets, typography, and auth hero layouts
β βββ components.css # Reusable UI elements, modals, and PWA install prompt
β βββ dashboard.css # Task cards, Event Raiders feed, action button rows
β βββ navbar.css # Navigation bar & brand logo styling
β βββ classroom.css # Google Classroom assignment lists & status badges
β βββ calendar.css # Interactive monthly & weekly calendar views
β βββ timeline.css # Activity timeline heatmaps & charts
β βββ note.css # Markdown note-taking & LocalSend sharing interface
β βββ notice.css # University & CR notice viewers
β βββ changelog.css # "What's New" modal styling & desktop min-width
β βββ responsive.css # Mobile breakpoints, compact dropdowns, sidebar drawers
β
βββ js/ # Organized Categorical JavaScript Architecture
β βββ admin/ # Administrative Operations & Data Migration
β β βββ activity-logger.js # Admin-level activity logging
β β βββ admin-api.js # Administrative utility APIs
β β βββ migrate-activity-logs.js # Historical activity log migration
β β βββ update-user-semesters.js # Semester auto-promotion batch tooling
β β
β βββ core/ # Core Infrastructure & Foundations
β β βββ app.js # Application orchestrator, event listeners, auth routing
β β βββ auth.js # Firebase Authentication wrapper & session timer
β β βββ db.js # Firestore CRUD, normalized ID lookups & local fallbacks
β β βββ firebase-config.js # Firebase SDK credentials & service initialization
β β βββ firestore-listener-manager.js # Real-time snapshot listeners for tasks/notices
β β βββ permission-manager.js# Role capability matrix & permission enforcement
β β βββ routing.js # Hash-based SPA routing with scroll position resets
β β βββ ui.js # Common UI notifications, loading screen, modal handling
β β βββ utils.js # Formatting, section grouping, and storage helpers
β β
β βββ features/ # Application Domain Features
β β βββ approvals.js # Faculty self-registration review & approval modal
β β βββ calendar-view.js # Monthly/weekly calendar renderer with task badges
β β βββ changelog-modal.js # "What's New" release notes modal
β β βββ classroom.js # Google Classroom integration & task sync
β β βββ cr-notice.js # Section notice creation & deadline management
β β βββ facultyClassroom.js # Faculty classroom stream & announcement manager
β β βββ notes.js # Personal notes module, Catbox uploads, LocalSend
β β βββ notice.js # UCAM university notice reader & PDF viewer
β β βββ profile.js # Profile settings, cooldown timers, theme selection
β β βββ raids-feed.js # UITS Event Raiders live RSS/JSON syndication
β β βββ task-export.js # PDF (with Unicode Bangla support), Markdown, and TXT task exporter
β β βββ timeline-data.js # Activity timeline aggregation
β β βββ timeline-ui.js # Heatmap visualization & bar charts
β β
β βββ notifications/ # Notification Systems
β β βββ notification-manager.js # Browser Push notification orchestrator
β β βββ notification-content-formatter.js # Payload and badge formatting
β β βββ notifications-types.js # Notification category constants
β β
β βββ pwa/ # Progressive Web App & Offline Experience
β βββ cache-manager.js # Local cache management & user storage cleanup
β βββ install-prompt.js # Custom 3-row PWA installation banner
β βββ manifest-generator.js# Dynamic manifest generator
β βββ offline-indicator.js # Top-level push-down offline banner
β βββ offline-manager.js # Connectivity detection & event listeners
β βββ pwa-detector.js # Standalone / browser environment detection
β βββ pwa-init.js # Service worker registration & lifecycle
β βββ sw-update-manager.js # Service worker update notifications
β
βββ doc/ # Comprehensive Project Documentation
βββ DOCUMENTATION.md # Full chronological project documentation
βββ FIREBASE_SETUP.md # Step-by-step Firebase configuration guide
βββ prompts/ # Complete archive of implementation plans & walkthroughs
- Modern Web Browser (Chrome, Edge, Firefox, Safari, Brave)
- Code Editor (VS Code recommended)
- Firebase Account (Free Spark Plan is sufficient)
- Follow the step-by-step setup guide in
doc/FIREBASE_SETUP.md. - Create Firestore collections (
users,tasks,events,cr_notices,resourceLinks,metadata). - Deploy the security rules from
firestore.rulesin the Firebase Console under Firestore Database β Rules.
Open js/core/firebase-config.js and add your project configuration:
const firebaseConfig = {
apiKey: "YOUR_API_KEY_HERE",
authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_PROJECT_ID.appspot.com",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};You can run the application with any local HTTP server:
- VS Code Live Server: Right-click
index.htmlβ Open with Live Server - Python:
python -m http.server 8000 - Node.js:
npx.cmd serve .
Firestore security rules enforce strict privilege separation:
- Public / Unauthenticated: Can read active user IDs/emails for credential resolution (if
firestore.rulesis published) and general app metadata. - Students: Can create personal tasks, update/delete tasks they created, view section group tasks, and manage their own notes.
- CRs: Can create and edit section-level tasks, post and manage section notices, and delete group tasks.
- Faculty: Can post department-wide notices, manage departmental tasks, and access Faculty Classroom tools.
- Department Coordinators (DptCoor): Full faculty permissions plus account approval rights and role modifications for faculty/students within their department.
- Admins: Unrestricted platform management, user role assignments, UID lookups, system-wide task/event management, and the Admin Role Preview Mode.
npm install -g vercel
vercelnpm install -g netlify-cli
netlify deploy --prodnpm install -g firebase-tools
firebase login
firebase init hosting
firebase deploy --only hosting- Quick Navbar Navigation: Clickable brand logo and title to return to Dashboard with smooth scroll-to-top.
- FAQ Section: Expandable accordion explaining sections, permissions, roles, and profile settings.
- Theme System: Light Mode, Dark Mode (blue accent
#3b82f6), and High Contrast (neon green#89d134). - Monthly & Weekly Calendar: Responsive calendar views with task deadline badges and modal details.
- Google Classroom Synchronization: Automated assignment discovery, status tracking, turned-in verification, and task sync.
- Activity Timeline: Heatmap and frequency bar charts for tracking daily productivity and academic engagement.
- Integrated PDF Viewing: Native in-app viewer for routines, academic calendars, and university notices.
- Faculty Roles & Dedicated Workspaces: Role segregation, faculty-specific set-details, and department notice broadcasting.
- Semester Auto-Promotion: Automatic semester advancement every July and January on user login with 30-day manual profile protection and an Admin fail-safe bulk update tool.
- Mobile Pending Tasks Optimization: Compact dropdown filter (
Filters: [Set Filter] [Clear]) and shortened button labels (Add,Old,Reset). - PWA Install Experience: Solid themed backgrounds and 3-row architecture for the install banner.
Thanks to these individuals who helped with testing, suggestions and support.
Faculties
Seniors
- Md Kamruzzaman Shishir (1814355002)
- Md. Sakibul Hakim (Sadab) (2114951038)
- Zobayer Hasan (2215151106)
- Mohammad Masud Chowdhury Mahir (2215151105)
- Md Sakib Hosen (0432220005101058)
- Akib Reza (0432220005101061)
- Md. Safrid Bhueyan (0432310005101080)
- K. M. Jakaria (0432310005101037)
- Md. Robiul Hassan (Rabin) (0432310005101096)
- Md. Mahfuz (0432310005101057)
- Md. Masud Rahman (0432320005101064)
- Kazi Md. Azhar Uddin Abeer (0432320005101120)
- Md.Jihad Hossan (0432320005101017)
- Md. Muhaiminul Islam (0432320005101207)
- Rudro Antony Mrong (0432320005101059)
Classmates
- Jannatul Ferdus (0432410005101058)
- Shalehin Ahmed (0432410005101083)
- Shamiur Hasan (0432410005101053)
- Md. Jubair Ahammed (0432410005101112)
- Saha Pradyumna Prasad (Ankur) (0432410005101159)
- Manik Halder (0432410005101113)
- @Helal Udding Patwary (Shakil) (0432410005101086)
Juniors