oArchito/xebia_lms_internship

xebia-virtual_Internship

0

stars

6

commits

JavaScript

primary language

Jun 26, 2026

updated

README

Xebia Learning Platform - Developer & Customization Guide

This project is a modern, production-ready frontend for the Xebia Learning Platform built with React 19 + Vite 8 + Tailwind CSS v4.


๐Ÿ“‚ Project Directory Structure

The project follows a component-driven architecture:

src/
โ”œโ”€โ”€ assets/             # Asset files (SVG icons, static images)
โ”‚   โ”œโ”€โ”€ hero.png        # The primary hero/login background image (Ganesha Neon)
โ”‚   โ”œโ”€โ”€ react.svg
โ”‚   โ””โ”€โ”€ vite.svg
โ”œโ”€โ”€ components/         # Modular react components
โ”‚   โ”œโ”€โ”€ common/         # Reusable global layout & form controls
โ”‚   โ”‚   โ”œโ”€โ”€ Button.jsx       # Custom buttons (primary, outline, accents, loaders)
โ”‚   โ”‚   โ”œโ”€โ”€ Card.jsx         # Card container with Framer Motion hover animations
โ”‚   โ”‚   โ”œโ”€โ”€ Container.jsx    # Centered maximum-width wrapper
โ”‚   โ”‚   โ”œโ”€โ”€ Input.jsx        # Dual-style inputs ("nested" for Login, "outline" for Forms)
โ”‚   โ”‚   โ”œโ”€โ”€ Loader.jsx       # Brand themed loading spinner
โ”‚   โ”‚   โ”œโ”€โ”€ SearchBar.jsx    # Mockup 2 search block with attached purple button
โ”‚   โ”‚   โ””โ”€โ”€ SectionTitle.jsx # Reusable headers
โ”‚   โ”œโ”€โ”€ navbar/         # Header navigation bar components
โ”‚   โ”‚   โ”œโ”€โ”€ Logo.jsx         # Solid purple brand typography logo
โ”‚   โ”‚   โ”œโ”€โ”€ NavItem.jsx      # Clean text navigation links with active underline
โ”‚   โ”‚   โ”œโ”€โ”€ NavLinks.jsx     # Mapper for navigation arrays
โ”‚   โ”‚   โ”œโ”€โ”€ SearchInput.jsx  # Centered rectangular search input in navigation
โ”‚   โ”‚   โ””โ”€โ”€ Navbar.jsx       # Header container & mobile slide-out drawer
โ”‚   โ”œโ”€โ”€ hero/           # Landing page landing layouts
โ”‚   โ”œโ”€โ”€ auth/           # Login form, login card layout, Google OAuth mock button
โ”‚   โ”œโ”€โ”€ faq/            # FAQ accordion container, items, support sidebar cards
โ”‚   โ”œโ”€โ”€ contact/        # Contact form layout
โ”‚   โ””โ”€โ”€ footer/         # Footer with quick links and copyright details
โ”œโ”€โ”€ layouts/            # Layout wrappers
โ”‚   โ””โ”€โ”€ MainLayout.jsx  # Persistent header, main container, footer wrapper
โ”œโ”€โ”€ pages/              # High level routed page views
โ”‚   โ”œโ”€โ”€ Landing.jsx     # Home Route (/)
โ”‚   โ”œโ”€โ”€ Login.jsx       # Authentication Route (/login)
โ”‚   โ”œโ”€โ”€ FAQ.jsx         # FAQ search & list Route (/faq)
โ”‚   โ””โ”€โ”€ Contact.jsx     # Contact Form Route (/contact)
โ”œโ”€โ”€ routes/             # App routing rules
โ”‚   โ””โ”€โ”€ AppRoutes.jsx   # React Router DOM mapping
โ”œโ”€โ”€ services/           # Service mock API layer
โ”‚   โ””โ”€โ”€ api.js          # Unified accessor for local JSON configs
โ”œโ”€โ”€ data/               # Configuration JSON files (Strictly NO hardcoded text in UI)
โ”‚   โ”œโ”€โ”€ navbar.json     # Logo text, Search Placeholders, Links, login buttons
โ”‚   โ”œโ”€โ”€ landing.json    # Hero descriptions, Features items, CTA buttons
โ”‚   โ”œโ”€โ”€ login.json      # Login cards, placeholders, bullet benefits
โ”‚   โ”œโ”€โ”€ faq.json        # FAQ accordion items (Q&A lists), support details
โ”‚   โ””โ”€โ”€ contact.json    # Forms descriptors, HQ locations
โ”œโ”€โ”€ App.jsx             # React router context mount
โ”œโ”€โ”€ main.jsx            # Application root entry point
โ””โ”€โ”€ index.css           # Tailwind v4 import & custom Color Palette config

๐ŸŽจ How to Change the Color Palette

Tailwind CSS v4 handles configuration directly inside src/index.css using the @theme directive (no tailwind.config.js is needed).

To change any colors, open index.css and edit the hex codes under @theme:

@theme {
  /* Brand color definitions (hex codes from your palette image) */
  --color-primary-600: #6C1D5F; /* Tranquil Velvet (Logo, Active Links, Main CTAs) */
  --color-primary-700: #4A1E47; /* Tranquil Velvet Dark (Button hover gradients) */
  --color-primary-400: #84117C; /* Bright Tr. Velvet (Secondary gradient borders) */
  
  --color-accent-500: #01AC9F;  /* Emerald (Teal links, Support cards, Send Message) */
  --color-accent-600: #FF6200;  /* CTA Orange (Secondary orange accent) */
  
  --color-bg-base: #F7F8FC;     /* Blueish Grey (Global app background) */
}

These mapped CSS variables compile automatically to standard classes (e.g. bg-primary-600, text-accent-500, border-primary-200, bg-bg-base).


โœ๏ธ How to Change Text Content (Zero Hardcoded Text)

No user-facing text is written directly in the React codebase. To update text, placeholders, labels, or paths, edit the respective file in the src/data/ directory:

  1. Header menus: Edit navbar.json.
  2. Hero title & cards on Landing: Edit landing.json.
  3. Login Card labels & benefit bullets: Edit login.json.
  4. FAQ list items: Edit faq.json (simply add objects to the "items" array to add new accordions).
  5. Contact office details & field names: Edit contact.json.

๐Ÿ–ผ๏ธ How to Change Images

The hero graphic is mounted dynamically via HeroImage.jsx and used in both the Home page and the Login split-screen.

To replace the image:

  1. Name your new image file hero.png.
  2. Paste it into the src/assets/ directory (overwriting the existing src/assets/hero.png).
  3. The Vite compiler will automatically hot-reload and show the new image on both pages.

โš™๏ธ How to Change Code

  1. Forms: Inputs on the Login page use the variant="nested" styling in LoginForm.jsx, whereas standard form inputs (like in Contact Us) use the variant="outline" styling. You can configure this prop in Input.jsx.
  2. Page Transitions: Built using Framer Motion. You can tweak slide-up or opacity coefficients directly on <motion.div> tags inside the pages located at src/pages/.
  3. Routing: If you need to add a page (e.g., /courses), define it in src/pages/, import it, and register the path inside AppRoutes.jsx.

๐Ÿš€ Execution & Deployment Commands

Running Locally

To start the hot-reloading development server:

npm run dev

Production Build

To test the production build locally:

npm run build

Vercel Deployment

To redeploy the production build to your live Vercel environment:

npx vercel --prod --yes

Git / GitHub Push

To push local changes to GitHub:

git add .
git commit -m "commit message details"
git push origin main

Contributors

oArchito

6 commits

Similar repos

Languages

JavaScript

96.2%

CSS

3.2%

oArchito/xebia_lms_internship

xebia-virtual_Internship

0

stars

6

commits

JavaScript

primary language

Jun 26, 2026

updated

README

Xebia Learning Platform - Developer & Customization Guide

This project is a modern, production-ready frontend for the Xebia Learning Platform built with React 19 + Vite 8 + Tailwind CSS v4.


๐Ÿ“‚ Project Directory Structure

The project follows a component-driven architecture:

src/
โ”œโ”€โ”€ assets/             # Asset files (SVG icons, static images)
โ”‚   โ”œโ”€โ”€ hero.png        # The primary hero/login background image (Ganesha Neon)
โ”‚   โ”œโ”€โ”€ react.svg
โ”‚   โ””โ”€โ”€ vite.svg
โ”œโ”€โ”€ components/         # Modular react components
โ”‚   โ”œโ”€โ”€ common/         # Reusable global layout & form controls
โ”‚   โ”‚   โ”œโ”€โ”€ Button.jsx       # Custom buttons (primary, outline, accents, loaders)
โ”‚   โ”‚   โ”œโ”€โ”€ Card.jsx         # Card container with Framer Motion hover animations
โ”‚   โ”‚   โ”œโ”€โ”€ Container.jsx    # Centered maximum-width wrapper
โ”‚   โ”‚   โ”œโ”€โ”€ Input.jsx        # Dual-style inputs ("nested" for Login, "outline" for Forms)
โ”‚   โ”‚   โ”œโ”€โ”€ Loader.jsx       # Brand themed loading spinner
โ”‚   โ”‚   โ”œโ”€โ”€ SearchBar.jsx    # Mockup 2 search block with attached purple button
โ”‚   โ”‚   โ””โ”€โ”€ SectionTitle.jsx # Reusable headers
โ”‚   โ”œโ”€โ”€ navbar/         # Header navigation bar components
โ”‚   โ”‚   โ”œโ”€โ”€ Logo.jsx         # Solid purple brand typography logo
โ”‚   โ”‚   โ”œโ”€โ”€ NavItem.jsx      # Clean text navigation links with active underline
โ”‚   โ”‚   โ”œโ”€โ”€ NavLinks.jsx     # Mapper for navigation arrays
โ”‚   โ”‚   โ”œโ”€โ”€ SearchInput.jsx  # Centered rectangular search input in navigation
โ”‚   โ”‚   โ””โ”€โ”€ Navbar.jsx       # Header container & mobile slide-out drawer
โ”‚   โ”œโ”€โ”€ hero/           # Landing page landing layouts
โ”‚   โ”œโ”€โ”€ auth/           # Login form, login card layout, Google OAuth mock button
โ”‚   โ”œโ”€โ”€ faq/            # FAQ accordion container, items, support sidebar cards
โ”‚   โ”œโ”€โ”€ contact/        # Contact form layout
โ”‚   โ””โ”€โ”€ footer/         # Footer with quick links and copyright details
โ”œโ”€โ”€ layouts/            # Layout wrappers
โ”‚   โ””โ”€โ”€ MainLayout.jsx  # Persistent header, main container, footer wrapper
โ”œโ”€โ”€ pages/              # High level routed page views
โ”‚   โ”œโ”€โ”€ Landing.jsx     # Home Route (/)
โ”‚   โ”œโ”€โ”€ Login.jsx       # Authentication Route (/login)
โ”‚   โ”œโ”€โ”€ FAQ.jsx         # FAQ search & list Route (/faq)
โ”‚   โ””โ”€โ”€ Contact.jsx     # Contact Form Route (/contact)
โ”œโ”€โ”€ routes/             # App routing rules
โ”‚   โ””โ”€โ”€ AppRoutes.jsx   # React Router DOM mapping
โ”œโ”€โ”€ services/           # Service mock API layer
โ”‚   โ””โ”€โ”€ api.js          # Unified accessor for local JSON configs
โ”œโ”€โ”€ data/               # Configuration JSON files (Strictly NO hardcoded text in UI)
โ”‚   โ”œโ”€โ”€ navbar.json     # Logo text, Search Placeholders, Links, login buttons
โ”‚   โ”œโ”€โ”€ landing.json    # Hero descriptions, Features items, CTA buttons
โ”‚   โ”œโ”€โ”€ login.json      # Login cards, placeholders, bullet benefits
โ”‚   โ”œโ”€โ”€ faq.json        # FAQ accordion items (Q&A lists), support details
โ”‚   โ””โ”€โ”€ contact.json    # Forms descriptors, HQ locations
โ”œโ”€โ”€ App.jsx             # React router context mount
โ”œโ”€โ”€ main.jsx            # Application root entry point
โ””โ”€โ”€ index.css           # Tailwind v4 import & custom Color Palette config

๐ŸŽจ How to Change the Color Palette

Tailwind CSS v4 handles configuration directly inside src/index.css using the @theme directive (no tailwind.config.js is needed).

To change any colors, open index.css and edit the hex codes under @theme:

@theme {
  /* Brand color definitions (hex codes from your palette image) */
  --color-primary-600: #6C1D5F; /* Tranquil Velvet (Logo, Active Links, Main CTAs) */
  --color-primary-700: #4A1E47; /* Tranquil Velvet Dark (Button hover gradients) */
  --color-primary-400: #84117C; /* Bright Tr. Velvet (Secondary gradient borders) */
  
  --color-accent-500: #01AC9F;  /* Emerald (Teal links, Support cards, Send Message) */
  --color-accent-600: #FF6200;  /* CTA Orange (Secondary orange accent) */
  
  --color-bg-base: #F7F8FC;     /* Blueish Grey (Global app background) */
}

These mapped CSS variables compile automatically to standard classes (e.g. bg-primary-600, text-accent-500, border-primary-200, bg-bg-base).


โœ๏ธ How to Change Text Content (Zero Hardcoded Text)

No user-facing text is written directly in the React codebase. To update text, placeholders, labels, or paths, edit the respective file in the src/data/ directory:

  1. Header menus: Edit navbar.json.
  2. Hero title & cards on Landing: Edit landing.json.
  3. Login Card labels & benefit bullets: Edit login.json.
  4. FAQ list items: Edit faq.json (simply add objects to the "items" array to add new accordions).
  5. Contact office details & field names: Edit contact.json.

๐Ÿ–ผ๏ธ How to Change Images

The hero graphic is mounted dynamically via HeroImage.jsx and used in both the Home page and the Login split-screen.

To replace the image:

  1. Name your new image file hero.png.
  2. Paste it into the src/assets/ directory (overwriting the existing src/assets/hero.png).
  3. The Vite compiler will automatically hot-reload and show the new image on both pages.

โš™๏ธ How to Change Code

  1. Forms: Inputs on the Login page use the variant="nested" styling in LoginForm.jsx, whereas standard form inputs (like in Contact Us) use the variant="outline" styling. You can configure this prop in Input.jsx.
  2. Page Transitions: Built using Framer Motion. You can tweak slide-up or opacity coefficients directly on <motion.div> tags inside the pages located at src/pages/.
  3. Routing: If you need to add a page (e.g., /courses), define it in src/pages/, import it, and register the path inside AppRoutes.jsx.

๐Ÿš€ Execution & Deployment Commands

Running Locally

To start the hot-reloading development server:

npm run dev

Production Build

To test the production build locally:

npm run build

Vercel Deployment

To redeploy the production build to your live Vercel environment:

npx vercel --prod --yes

Git / GitHub Push

To push local changes to GitHub:

git add .
git commit -m "commit message details"
git push origin main

Similar repos

Contributors

oArchito

6 commits

Languages

JavaScript

96.2%

CSS

3.2%