Project: UITS_Dev_Lab Single Page Application
Repository: oU1TS/dev
Tech Stack: Raw HTML5, Semantic CSS3, Vanilla ES6+ JavaScript
UITS_Dev_Lab is built as a lightweight, zero-dependency Single Page Application (SPA). It enforces strict separation of concerns across HTML structure, CSS styling tokens, JSON data representation, rendering logic, and application state control.
- Zero Third-Party Libraries: Built without external frameworks, bundlers, or UI component libraries to ensure instant page load and zero supply chain overhead.
- Asynchronous Data Separation: All domain content (Roadmap steps, Setup Guides, Vault Resources, Grindset Leaderboard) is isolated in
data.jsonand fetched dynamically at runtime. - Client-Side SPA Routing: Navigation is managed without page reloads using window hash monitoring (
#home,#setup-guides,#vault-resources,#grindset,#join-us,#about-us). - High-Contrast Aesthetics: Enforces zero gradients, zero emojis, zero em-dashes, and clean typography tokenized via CSS variables.
Provides the semantic HTML5 layout shell:
<header class="site-header">: Contains project branding (UITS_Dev_Lab), desktop navigation links, theme toggle button, and mobile hamburger button.<aside class="mobile-sidebar">: Mobile slide-out navigation drawer triggered at< 768pxscreen width.<main class="container">: Host container for all 6 section viewports (.page-section).<div class="modal-overlay" id="app-modal">: Accessible centralized popup modal for displaying roadmap objectives and multiline setup instructions.<footer class="site-footer">: Sticky-bottom footer container.
Contains design system tokens, responsive layout rules, and component styles:
- CSS Custom Variables (
:root/[data-theme="dark"]): Defines background surfaces (--bg-body,--bg-surface), text colors (--text-main,--text-muted), borders, and accent highlights (--accent-blue,--accent-green). - Sticky Layout Rules:
.site-headerusesposition: sticky; top: 0;to adapt dynamically to navigation wrapping.mainusesflex: 1and.site-footerusesmargin-top: autoto prevent content overlap. - Multiline Instruction Formatting:
.guide-instructions { white-space: pre-line; }preserves formatting for step-by-step guides.
Central JSON data store structured into four primary collections:
roadmap: Interactive 4-step onboarding steps (Step Number, Title, Summary, Objective, Resources).guides: Category-tagged setup guides (ID, Title, Category, Difficulty, Prerequisites, Multiline Steps).resources: Curated developer scripts, templates, guidelines, and tools.leaderboard: Community member activity entries (Rank, Name, Username, Score, Streak Days, Target Role, Tech Stack Tags, GitHub Link).
Encapsulated DOM rendering module exporting static UI generator functions:
renderRoadmap(container, roadmapData, onSelectStep)renderGuides(container, guidesData, activeCategory, searchQuery, onSelectGuide)renderResources(container, resourcesData, activeCategory, searchQuery)renderLeaderboard(container, leaderboardData)openModal(title, categoryTag, metaInfo, stepsContentText)closeModal()
Main application controller handling lifecycle and interactivity:
- State Management: Holds application state object (
data,currentRoute,theme,guidesFilter,guidesSearch,resourcesFilter,resourcesSearch). - Fetch Pipeline: Asynchronously fetches
data.jsononDOMContentLoaded. - Router Logic: Listens to
hashchangeevents and toggles.page-section.activevisibility. - Theme Manager: Toggles root
data-themeattribute betweendarkandlightand persists preference inlocalStorage.setItem('uits_theme'). - Event Listeners: Binds category filter buttons, search input handlers, mobile menu drawer triggers, and modal overlay dismissal (ESC key, backdrop click, close button).
{
"id": "1",
"name": "Tanvir Hossain",
"username": "tanvir-dev",
"score": 1420,
"streakDays": 45,
"role": "Full Stack Engineer",
"techStack": ["React", "Node.js", "PostgreSQL", "TypeScript"],
"githubUrl": "https://github.com/tanvir-dev"
}{
"id": "guide-cli-env",
"title": "Universal Terminal & Shell Environment",
"category": "CLI",
"difficulty": "Beginner",
"prerequisites": "Administrator access on Windows (WSL2), macOS, or Linux.",
"steps": "Step 1: Install Zsh or Bash latest release.\nStep 2: Configure environment path variables in .zshrc."
}- Header & Footer Layout Fix: Refactored
.site-headerpositioning fromfixedtoposition: sticky; top: 0;to adapt dynamically to header heights when nav links wrap. - Footer Pinning: Added
margin-top: autoand relative positioning to.site-footerto ensure it stays anchored at the bottom of the viewport without clipping page content. - Scroll Margin: Added
scroll-margin-topto.page-sectiontargets for hash navigation offset.
- Grindset Activity Leaderboard: Introduced the
#grindsetsection to showcase community rankings based on GitHub activity, commit streaks, target engineering roles, and tech stacks. - Render Engine Expansion: Extended
render.jswithrenderLeaderboard()and updatedapp.jsstate management and navigation hooks. - Data Integration: Added
"leaderboard"dataset array todata.json.
- Initial SPA Release: Launched core Single Page Application architecture.
- Sections Built:
#home,#setup-guides,#vault-resources,#join-us,#about-us. - Dynamic Content: Integrated async
fetch('data.json')pipeline. - Interactive Features: 4-step roadmap modal overlay, live keyword search, category filtering, and dark/light theme switching with
localStoragepersistence.