KIIT-KAFFE-deploy / docs /03-includes.md
Kush-Singh-26
Initial HF Spaces deploy: single-container Apache/PHP + MariaDB on port 7860
7845020
|
Raw
History Blame Contribute Delete
7.33 kB
# PHP Includes Documentation
## Overview
This document describes the reusable PHP components located in the `/includes` directory. These files contain HTML markup with embedded PHP and JavaScript that are used to build the different pages of the KIIT Kafe application.
## Common Patterns
- Each include file represents a complete page of the application
- Files contain HTML structure with Tailwind CSS classes for styling
- Embedded JavaScript handles client-side interactivity
- PHP is used minimally, mainly for dynamic base path calculation in head.php
- Navigation between pages is handled by JavaScript functions defined in included JS files
## Files
### head.php
Contains the HTML head section and opening body tag.
**Key Features:**
- Dynamically calculates base path for correct asset loading regardless of deployment method
- Sets UTF-8 charset and viewport for responsive design
- Defines page title: "KIIT KAFE — Campus 25"
- Loads Google Fonts (Syne, Playfair Display, DM Sans)
- Links to main stylesheet: css/style.css
**Usage:** Included at the beginning of every PHP template that outputs HTML.
### auth.php
Contains the authentication page (login/signup/forgot password).
**Sections:**
1. **Login Form:** Email and password fields with "Show password" toggle
2. **Signup Form:** Full name, email, phone, and password fields
3. **Forgot Password:** Email input for password reset requests
**Features:**
- Tabbed interface to switch between login/signup/forgot
- Input validation handled by JavaScript (doLogin(), doSignup(), doForgot())
- Social login button placeholder (Google)
- Responsive design with auth-card container
### landing.php
Contains the landing/home page that serves as the entry point for unauthenticated users.
**Sections:**
1. **Header:** Navigation with Login/Signup buttons
2. **Hero Section:** Branding, call-to-action buttons (Explore Menu, Order Now)
3. **Stats Section:** Key metrics (Daily Visitors, Menu Items, Rating, Opening Hours)
4. **Features Section:** 6 feature cards highlighting selling points
5. **Footer:** Brand info, quick links, account links, contact information
**Features:**
- Responsive layout with hero badge, canvas text space
- Interactive buttons that call JavaScript nav() function
- Visual hierarchy with clear sections and spacing
### menu.php
Contains the main menu page where users browse and select items.
**Sections:**
1. **Topbar:**
- Navigation logo (back to landing)
- Location display (Campus 25, Patia, Bhubaneswar)
- Search bar with real-time filtering
- User info and action buttons (cart, account menu)
2. **Menu Hero Bar:** Motivational heading
3. **Categories Strip:** Horizontal scrollable category buttons
4. **Menu Body:**
- Section label and sorting dropdown (Price low/high, default)
- Items grid container populated by JavaScript
5. **Footer:** Standard footer with brand info and links
**Features:**
- Real-time search filtering via filterMenuItems()
- Category navigation with scrollable strip
- Sorting functionality via sortMenuItems()
- Dynamic welcome message showing user name
- Cart badge indicator for item count
- Account menu dropdown
### cart.php
Contains the shopping cart page where users review and modify their selections.
**Sections:**
1. **Navbar:** Back to menu button
2. **Cart States:**
- Empty state: Message and Browse Menu button
- Filled state: Cart layout with items and bill details
3. **Cart Layout (when filled):**
- Left: Cart items list and delivery address card
- Right: Bill card with item totals, taxes, discounts, and checkout button
4. **Additional Features:**
- Coupon application modal
- No-contact delivery option
- Bill calculation (item total, delivery fee, GST, discount)
**Features:**
- Dynamic cart items rendering
- Address display with change option
- Real-time bill updates as items are modified
- Coupon modal for discount codes
- Checkout initiation via handleCheckout()
### payment.php
Contains the payment processing page (referenced but not shown in provided files - likely handled via modals).
**Note:** Based on the modals.php file, payment processing appears to be handled through modals rather than a standalone page:
- Payment Waiting Modal (for cash payments)
- Payment Success Modal
- Payment Failure Modal
### success.php
Contains the order success/tracking page.
**Note:** File not fully shown in listing, but referenced in navigation. Likely contains:
- Order confirmation details
- Tracking information
- Option to view invoice
- Return to home/menu options
### modals.php
Contains all modal dialogs used throughout the application.
**Modals Included:**
1. **Invoice Modal:** Displays order invoice with customer, items, totals, and print button
2. **Coupon Modal:** Allows applying discount codes (KIIT10 for 10%, STUDENT for ₹50 off)
3. **Account Modal:** Shows user profile info, edit profile/logout buttons, and order history
4. **Payment Waiting Modal:** Shown for cash payments, verifies payment status
5. **Low Stock Modal:** Admin feature to show items with low inventory
6. **Payment Success Modal:** Confirms successful payment with order ID and view/track options
7. **Payment Failure Modal:** Shows payment error with retry/back options
**Features:**
- Consistent modal-overlay background with animated modal boxes
- Close buttons on all modals
- Responsive designs with appropriate max-width constraints
- Interactive elements bound to JavaScript functions
- Loading states and placeholder content where data is injected dynamically
### scripts.php
Contains shared JavaScript functions used across multiple pages.
**Note:** File not shown in listing but referenced in head.php. Likely contains:
- Navigation functions (nav(), showAccountMenu())
- Authentication functions (doLogin(), doSignup(), doForgot())
- Menu functions (filterMenuItems(), sortMenuItems())
- Cart functions (handleCheckout(), applyCoupon())
- Payment handling functions
- Modal control functions (openModal(), closeModal())
- Utility functions for DOM manipulation and API calls
### admin.php
Contains the admin dashboard page.
**Note:** File not shown in listing but referenced in directory. Based on admin_files/dashboard.php, likely contains:
- Admin authentication checks
- Dashboard layout with stats and quick actions
- Navigation to admin functions (menu management, order management, analytics)
## JavaScript Integration
All include files rely on JavaScript functions defined in:
- js/app.js - Main application logic
- js/menu.js - Menu-specific functionality
- js/landing-design.js - Landing page animations/interactions
- js/payment.js - Payment processing logic
- js/auth.js - Authentication handling
- js/cart.js - Cart management
- js/admin.js - Admin panel functions
## Styling
All styling is handled through:
- css/style.css - Main stylesheet with Tailwind-like utility classes
- Google Fonts for typography
- Responsive design principles for mobile/desktop compatibility
## Security Notes
- Minimal PHP usage reduces server-side attack surface
- Client-side validation should be supplemented with server-side validation in API endpoints
- No sensitive data is stored in these files (credentials handled via API/db.php)
- XSS prevention relies on proper escaping in API responses and DOM manipulation