Spaces:
Running
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:
- Login Form: Email and password fields with "Show password" toggle
- Signup Form: Full name, email, phone, and password fields
- 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:
- Header: Navigation with Login/Signup buttons
- Hero Section: Branding, call-to-action buttons (Explore Menu, Order Now)
- Stats Section: Key metrics (Daily Visitors, Menu Items, Rating, Opening Hours)
- Features Section: 6 feature cards highlighting selling points
- 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:
- 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)
- Menu Hero Bar: Motivational heading
- Categories Strip: Horizontal scrollable category buttons
- Menu Body:
- Section label and sorting dropdown (Price low/high, default)
- Items grid container populated by JavaScript
- 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:
- Navbar: Back to menu button
- Cart States:
- Empty state: Message and Browse Menu button
- Filled state: Cart layout with items and bill details
- Cart Layout (when filled):
- Left: Cart items list and delivery address card
- Right: Bill card with item totals, taxes, discounts, and checkout button
- 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:
- Invoice Modal: Displays order invoice with customer, items, totals, and print button
- Coupon Modal: Allows applying discount codes (KIIT10 for 10%, STUDENT for ₹50 off)
- Account Modal: Shows user profile info, edit profile/logout buttons, and order history
- Payment Waiting Modal: Shown for cash payments, verifies payment status
- Low Stock Modal: Admin feature to show items with low inventory
- Payment Success Modal: Confirms successful payment with order ID and view/track options
- 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