How singhgemsaman/sprints-and-outsource-projects works
1. This repository is not one app; it is a collection of standalone front-end deliverables organized by sprint and phase. The architecture is evolutionary: early folders are static HTML/CSS/JS prototypes, while later folders introduce build tooling, CSS generation, and a React/Vite application.
2. The simplest boundary is the “static site” tier: Phase_1, phase_2, phase_3, Outsorce_Portfolio, and several Sprint_*/*Phase* folders contain index.html, CSS, and a small main.js. These are self-contained browser apps with direct DOM scripting and no obvious shared runtime.
3. A second tier uses a CSS build pipeline. In Sprint_2/Phase_1-3 and Sprint_3/Phase1-3, the presence of package.json, src/input.css, and generated src/output.css indicates a Tailwind/PostCSS-style workflow where source styles are compiled into distributable CSS. The app logic still lives in main.js, but styling is produced through a build step instead of hand-authored CSS only.
4. The most complete subsystem is Sprint_3/Outsourced(Veridian-gallery), which is a React application built with Vite. src/main.jsx is the entry point, App.jsx is the composition root, and vite.config.js plus eslint.config.js show a modern SPA toolchain.
5. In the gallery app, the UI is split into reusable components and page-level views. Components such as Navbar, Footer, ArtworkCard, and SkeletonLoader handle shared layout, card rendering, and loading states. Page modules such as ArtistDirectory, ArtistPortfolio, ExhibitionHall, Wishlist, Contact, and NotFound represent the major navigable screens.
6. Data and state are separated from presentation in that React app. src/data/exhibitions.js provides local content, src/hooks/useArtists.js and src/hooks/useArtworks.js encapsulate data retrieval and related state, and src/context/PatronWishlistContext.jsx holds client-side wishlist state across pages. useDocumentTitle.js is a small cross-cutting hook for page metadata.
7. The gallery app’s data flow is typical SPA flow: entry point mounts the app, the app renders navigation and page shells, hooks fetch or derive artist/artwork data, context stores wishlist selections, and presentational components render cards and loading skeletons. The boundaries are cleanly split between UI, data fetching, and shared state.
8. Styling in the gallery app is modularized alongside components and pages. Each component/page has its own CSS file, with global styling in src/index.css and app-level styling in src/App.css, which makes the visual system easy to diagram as shared shell styles plus feature-specific styles.
9. Sprint_4 appears to be a separate Vite-based browser app focused on document parsing. The presence of src/pdfParser.js suggests a distinct parsing/processing layer isolated from the main UI in src/main.js, with src/style.css handling presentation. This is a clear example of logic split between parsing and interface layers.
10. The repo also contains deployment and quality artifacts rather than runtime code: the README links to a Netlify-hosted version of a sprint build, and the screenshot folder stores desktop/mobile/audit images for documentation or validation. These are supporting assets, not part of the runtime architecture.
11. From an architecture-diagram perspective, the main repeating patterns are: static pages; CSS-build pages; React SPA with hooks/context/components; and a document-processing app with a dedicated parser module. The important boundaries are between source and generated CSS, between presentation and shared state, and between UI and domain-specific processing logic.
Main entry points: App.jsx App shell · ArtistDirectory.jsx Pages · Phase_1/index.html Phase 1 · phase_2/index.html Phase 2
Components 24
Static sites
Standalone HTML/CSS/JS deliverables with direct DOM scripting.
- Phase 1 · Early standalone browser deliverable.
Phase_1/index.html - DOM script · Direct client-side behavior for the Phase 1 site.
Phase_1/scripts/main.js - Phase 1 style · Hand-authored styling for the Phase 1 site.
Phase_1/css/style.css - Phase 2 · Standalone browser deliverable with multiple style modules.
phase_2/index.html - DOM script · Client-side behavior for the Phase 2 site.
phase_2/scripts/main.js - Theme CSS · Core style, responsive rules, and animation/theme layers.
phase_2/css/style.css - Portfolio site · Self-contained portfolio deliverable.
Outsorce_Portfolio/index.html - Portfolio CSS · Standalone styling for the portfolio site.
Outsorce_Portfolio/style.css
CSS build tier
Browser apps that compile source CSS into distributable output CSS.
- Sprint 2 P1 · Phase app with source CSS compiled into output CSS.
Sprint_2/Phase_1/index.html - CSS source · Input CSS compiled into distributable output CSS.
Sprint_2/Phase_1/src/input.css - Main script · Client-side behavior for the Sprint 2 Phase 1 app.
Sprint_2/Phase_1/main.js - Sprint 2 P3 · Later Sprint 2 phase with the same source-to-output CSS flow.
Sprint_2/Phase_3/index.html
React SPA
Vite-based gallery application with components, hooks, and context.
- Gallery app · Vite-built Veridian gallery application.
Sprint_3/Outsourced(Veridian-gallery)/src/main.jsx - App shell · Composition root for routes, layout, and feature wiring.
Sprint_3/Outsourced(Veridian-gallery)/src/App.jsx - UI components · Shared presentation pieces for navigation, cards, footer, and loading states.
Sprint_3/Outsourced(Veridian-gallery)/src/components/Navbar.jsx - Pages · Major navigable screens in the gallery application.
Sprint_3/Outsourced(Veridian-gallery)/src/pages/ArtistDirectory.jsx - Wishlist state · Client-side shared wishlist context.
Sprint_3/Outsourced(Veridian-gallery)/src/context/PatronWishlistContext.jsx - Data hooks · Hooks for artists, artworks, and document title management.
Sprint_3/Outsourced(Veridian-gallery)/src/hooks/useArtists.js - Exhibitions data · Static data used by the gallery app.
Sprint_3/Outsourced(Veridian-gallery)/src/data/exhibitions.js
Parser app
Document-processing Vite app with dedicated parsing logic.
- Parser app · Separate Vite-based browser app focused on parsing.
Sprint_4/src/main.js - PDF parser · Dedicated document parsing and processing logic.
Sprint_4/src/pdfParser.js - App style · Presentation layer for the parser app.
Sprint_4/src/style.css
Supporting assets
Documentation and screenshots that support delivery and validation.
- README · Repository overview and deployment notes.
README.md - Screenshots · Documentation and validation images.
screenshot
Connections 20
- Phase 1 → DOM script: loads · HTML boots the browser script.
- Phase 1 → Phase 1 style: styles · Page pulls in its stylesheet.
- Phase 2 → DOM script: loads · HTML boots the browser script.
- Phase 2 → Theme CSS: styles · Page uses the shared theme and responsive CSS.
- Portfolio site → Portfolio CSS: styles · Portfolio HTML uses its standalone stylesheet.
- Sprint 2 P1 → CSS source: builds CSS · Source CSS compiles to output CSS.
- Sprint 2 P1 → Main script: runs · Main script drives browser behavior.
- Sprint 2 P3 → CSS source: builds CSS · Same source-to-output CSS pattern as other build-tier phases.
- Gallery app → App shell: mounts · React entry mounts the app shell.
- App shell → UI components: uses · App shell composes shared UI components.
- App shell → Pages: renders · App shell switches between page views.
- App shell → Wishlist state: shares state · Wishlist context is provided across the app.
- App shell → Data hooks: depends on · Feature hooks feed data and metadata into the UI.
- Data hooks → Exhibitions data: reads · Hooks consume local exhibition data.
- Pages → UI components: reuses · Pages reuse shared presentation components.
- Pages → Wishlist state: consumes · Pages read and update wishlist state.
- Parser app → PDF parser: processes · Main UI coordinates document parsing.
- Parser app → App style: styles · App presentation is separated into CSS.
- README → Gallery app: documents · Repository docs reference the gallery build and delivery.
- README → Screenshots: references · Docs and validation assets support the project.