Back to the website

Project Documentation

C B Patel Computer College — Website

A single-page, mobile-first website for C B Patel Computer College (BCA), Surat — affiliated with Veer Narmad South Gujarat University and run by the KANTHA VIBHAG NAVNIRMAN MANDAL trust. This document explains what the site is built with, how it's structured, and why the design decisions were made — written for assignment submission and future reference.

1. Tech Stack

Technologies used and why
LayerTechnologyWhy
Markup HTML5 (semantic elements: header, nav, main, section, footer, dl) Accessible, SEO-friendly document structure
Layout & components Bootstrap 5.3.3 (CDN) Grid system, responsive navbar, and the carousel component — no custom framework needed
Styling Bootstrap utilities + custom CSS3 using CSS custom properties (:root variables) Bootstrap handles layout/spacing/responsiveness; custom properties keep the brand palette and type scale centrally defined
Interactivity Bootstrap's JS bundle + a little vanilla JavaScript (no jQuery) Bootstrap powers the navbar collapse and carousel; vanilla JS handles scroll-reveal and the footer year
Fonts Google Fonts (CDN) See Fonts below
Images Local img/ folder — JPG/AVIF, optimized, marked .img-fluid Fast loading, scales fluidly at any screen size, no dependency on external image hosts

Files

index.html
img/
  logo.png
  c-b-patel-computer-college-vesu-surat-colleges-s58BdkM11h.avif
  c-b-patel-computer-college-vesu-surat-colleges-s58BdkM11h.jpg
  campus-entrance.jpg
  campus-bca-event.jpg
  campus-classroom.jpg
  campus-courtyard.jpg
README.md
documentation.html
What each file is for
FilePurpose
index.htmlThe entire site — structure, CSS, and JS in one file
img/logo.pngHeader logo
img/c-b-patel-...avif + .jpgHero photo — AVIF with a JPG fallback
img/campus-entrance.jpgCarousel slide 1
img/campus-bca-event.jpgCarousel slide 2
img/campus-classroom.jpgCarousel slide 3
img/campus-courtyard.jpgCarousel slide 4
README.mdMarkdown version of this document
documentation.htmlThis page

Everything needed to run the site is in index.html + img/. No server, database, or build tools are required — just open index.html in a browser, or upload the folder as-is to any static web host.


2. How the Page Is Built

The site is a single scrollable page made of five sections, in order:

  1. Header — sticky Bootstrap navbar with the college logo/mark and an "About Us" link that jumps to the About section via an in-page anchor (#about).
  2. Hero — headline, sub-headline, and a call-to-action button, paired with a real campus photograph (AVIF with a JPG fallback via <picture>) framed with a bronze accent border and a "Trust Founded · 1965" badge.
  3. About Us — the college's history and mission, a three-item fact strip (1965 / 2001 / BCA), and a trust-statement card containing a quote plus an embedded Bootstrap image carousel of four campus photos (entrance, tech fest, classroom, courtyard).
  4. CTA band — a second, shorter call-to-action strip before the footer.
  5. Footer / Contact — phone (tel:) and email (mailto:) links, location with a Google Maps link, and affiliation details, laid out on the Bootstrap grid.

Key implementation choices

  • Bootstrap grid throughout. Both index.html and this documentation page use Bootstrap's container / row / col-* system for layout, rather than hand-rolled CSS grid or flexbox wrappers — so spacing and breakpoints stay consistent across the whole project.
  • One HTML file per page. CSS and JS are embedded rather than split into separate files, since the site is small and this keeps each deliverable self-contained and easy to review or host anywhere.
  • CSS custom properties (--navy, --bronze, etc.) define the palette once at the top of each stylesheet, layered on top of Bootstrap's defaults, so every color used across the page traces back to a single source.
  • Mobile-first responsive design. Bootstrap's grid (col-lg-*) stacks all multi-column sections into a single column on small screens; tables use Bootstrap's .table-responsive wrapper so wide content scrolls horizontally instead of breaking the layout; images carry the .img-fluid utility so they scale fluidly inside their containers; type sizes use clamp() so headings scale smoothly between mobile and desktop instead of jumping at breakpoints.
  • Scroll-reveal animation is done with a small IntersectionObserver script — sections fade/slide in as they enter the viewport. It automatically disables itself when the browser's prefers-reduced-motion setting is on, so it doesn't affect users who've asked for reduced motion.
  • Accessibility: semantic headings in order (h1h2), a "Skip to main content" link, visible keyboard focus states (:focus-visible), aria-labels on the carousel and icon-only buttons, and descriptive alt text on every image.
  • Performance: the hero photo is served as AVIF (much smaller file size) with an automatic JPG fallback for browsers that don't support AVIF; all other images are compressed JPGs; only Bootstrap's own JS bundle is loaded, no extra libraries.
  • Real contact details are wired as working links — tel: links for the two listed phone numbers, a mailto: link for the college email, and a Google Maps link opening in a new tab — so they're directly clickable/tappable on any device.

3. Color Palette

The palette was specified in the design brief and applied consistently through CSS variables:

Brand colors and where each is used
SwatchHexVariableUsed for
#06213F --navy Primary brand color — header text, hero background, footer background
#9E692E --bronze Secondary color — section eyebrows, CTA band background, carousel accents
#F4F5F6 --ink-light Light text color used on dark backgrounds (hero, footer, trust card)
#543512 --accent Deep accent — trust-statement card background, small emphasis elements
#286FBD --btn-blue Call-to-action buttons only, kept exclusive to CTAs so it stays high-signal

Two supporting tones were derived from the palette for depth without introducing new colors: --navy-deep (a darker navy for the footer) and --bronze-soft (a lighter bronze for hover states and hairline accents).


4. Fonts

Two Google Fonts are loaded, each with a specific role:

Typeface roles
FontRoleWhere it's used
Fraunces
weights 500 / 600 / 700
Display serif Headings (h1, h2), the italic hero sub-headline, and numerals in the fact strip and hero photo badge — gives the page an academic, established character rather than a generic tech-startup look
Source Sans 3
weights 400–700
Body sans-serif Paragraph text, navigation, buttons, labels — kept clean and highly legible at small sizes

Both are loaded via <link> from fonts.googleapis.com with preconnect hints for faster loading, and both include display=swap so text remains visible while the fonts load.


5. Design Rationale

The brief asked specifically to avoid generic AI-generated design patterns (gradient hero blobs, oversized rounded rectangles, generic SaaS visuals). Two choices were made to keep the page grounded in the subject rather than a template:

  • A trust-focused signature element. The hero photo carries a small badge marking "1965 · Trust Founded," and the About section pairs a quote from the trust with a rotating photo carousel — tying the visual design directly to the brief's core trust statement (KANTHA VIBHAG NAVNIRMAN MANDAL, established 1965) instead of using decorative filler.
  • Real campus photography throughout, rather than stock imagery or illustrations — the hero, and all four carousel slides, are actual photos of the D. C. Patel Educational Campus, its BCA event, a live classroom, and the courtyard.

6. Reference

The existing college page at navnirmanmandal.in/BCA/about_bcom.php was used as the reference for factual details about the college and trust (affiliation, establishment year, trust name and founding year). The visual design, layout, copy, and code in this repository are an original build for this assignment, not a copy of that page.


7. Browser Support

Built and tested against current versions of Chrome, Edge, Firefox, and Safari (desktop and mobile). AVIF images fall back to JPG automatically on older browsers via the <picture> element; all layout and interaction (carousel, navigation, scroll-reveal) degrades gracefully without JavaScript errors if a feature is unsupported.