Skip to content
/ Crumble-Cafe-Page Public template

A modularized cafe page where objects tell the story and functions bring it to life. Webpack, JavaScript, and CSS unite to serve dynamic content and smooth navigation.

Notifications You must be signed in to change notification settings

aroan-v/Crumble-Cafe-Page

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crumble Cafe Page

This repository showcases a dynamic and interactive single-page application for a fictional cafe, Crumble Cafe, created as an exercise in utilizing Webpack and JavaScript modules. The page is fully modular, with separate JavaScript files generating content for each tab dynamically. This project emphasizes reusable components and clean, organized code, ensuring efficient development and scalability. Styling is achieved through an external CSS file, enhancing the user interface with a polished, cohesive aesthetic.

Main Features

  • Dynamic Content Generation: All content, including the introduction and product details for each category, is generated dynamically using JavaScript modules.
  • Reusable Functions: Core functions like buildIntroContainer and subMenuContainer enable seamless creation of uniform sections by passing relevant objects.
  • Object-driven Content Management: Separates content (e.g., product details, descriptions) from HTML manipulation, ensuring clear separation of concerns and easier scalability.
  • Tab-based Navigation: Five navigable tabs: Home, Cakes, Donuts, Sweet Blends, and Contact Us, all dynamically rendered using JavaScript.
  • Responsive Design: Ensures the page is visually appealing and functional across devices, using modern CSS practices.
  • Efficient DOM Manipulation: Reuses DOM elements and updates only necessary sections to optimize performance.
  • Custom Animations and Styling: Leverages CSS transitions and animations for smooth visual effects, enhancing user interaction.

Limitations

  • Lacks a backend or database; all data is hardcoded.
  • No form validation for the Contact Us page (purely functional UI).
  • Minimal error handling for edge cases in user interactions.
  • The responsive design is functional and adapts well to different devices, though there’s room for further refinement.

Explored Concepts

  • JavaScript Modules
    Organized functionality across separate files, promoting modular and maintainable code.
  • Reusable Components
    Centralized utility functions (e.g., buildIntroContainer, subMenuContainer) enable consistent structure and style for content.
  • Webpack
    Bundled and optimized assets for streamlined development and deployment.
  • CSS Techniques
    Utilized pseudo-classes, @keyframes, @font-face, and Flexbox for layout and animations.
  • DOM Manipulation
    Extensively used createElement, appendChild, and event listeners for interactive functionality.
  • Event Handling
    Implemented both click and scroll event listeners to provide a seamless navigation experience.

Applications Used

  • Visual Studio Code - For coding and debugging the project.
  • Figma - For wireframing and visual design references.
  • Webpack - For module bundling and asset management.
  • Git and GitHub - For version control and collaboration.
  • CodePen.io - For testing and experimenting with isolated code snippets.

Author

aroan-v

Credits

All credit goes to The Odin Project for providing guidance and inspiration for this exercise.

About

A modularized cafe page where objects tell the story and functions bring it to life. Webpack, JavaScript, and CSS unite to serve dynamic content and smooth navigation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published