## Seven O’Clock Dinner Club
### Overview
Seven O’Clock Dinner Club is a small PHP/MySQL web app for a private dinner club: members can register, maintain simple profiles, and contribute photographs and quotes from evenings at the table.
**Important note about authorship:**
This project is **entirely vibe‑coded by an AI assistant**. The only human input was **high‑level planning, layout direction, and preferred display text / copy choices**. All structure, markup, styles, and implementation details were generated from that guidance.
### Features
- **Public pages**
- Home with a curated gallery of approved uploads.
- Members listing with basic profiles.
- Registration, sign‑in, and simple contact page.
- **Member area**
- Profile editing (city, bio, links, optional photo).
- Uploads page to contribute a dinner photograph plus quote/attribution.
- Lightbox image viewer for uploaded photos.
- **Admin area**
- Upload moderation and basic stats (depending on how you configure roles).
- **Design**
- Single column, card‑based layout.
- Gentle, consistent card fade‑in animations.
- Soft, dinner‑party palette and typography.
### Tech Stack
- **Backend**: PHP (procedural, mysqli)
- **Database**: MySQL / MariaDB
- **Frontend**: Hand‑rolled HTML, CSS (no frameworks), minimal vanilla JS
- **Runtime target**: Typical local LAMP stack; developed with XAMPP on Windows
### Getting Started
1. **Clone the repo**
```bash
git clone <your-repo-url> seven-oclock-dinner
cd seven-oclock-dinner
```
2. **Create database**
- Create a new MySQL database (e.g. `seven_oclock_dinner`).
- Import your schema (tables for `users`, `member_profiles`, `uploads`, etc.).
If you don’t have a schema dump checked in yet, you’ll need to create these tables based on the code in `config.php` and the queries in `views/`.
3. **Configure environment**
- Copy `.env` (or `.env.example` if present) and edit to match your local DB credentials and base URL.
- Ensure `config.php` is pointing at the correct `.env` and host/settings.
4. **Serve the app**
- Place the project under your web root, e.g. `C:\xampp\htdocs\7oclockdinner`.
- Start Apache and MySQL via XAMPP.
- Visit `http://localhost/7oclockdinner` in your browser.
### File Structure (High Level)
- `config.php` – DB connection and basic app wiring.
- `views/layout/` – Shared layout pieces (`header.php`, `footer.php`).
- `views/public/` – Public and member‑facing pages.
- `views/admin/` – Simple admin/dashboard views.
- `css/app.css` – Global styles, card and layout design, animations.
- `uploads/` – User‑uploaded images (git‑ignored in most setups).
### Development Notes
- **No frontend framework**: Everything is meant to be readable, tweakable, and loosely structured rather than engineered like a large app.
- **Accessibility & motion**: Basic respect for `prefers-reduced-motion` (card animations disable when reduced motion is requested).
- **Security**: Inputs are generally validated and escaped, but before putting this on the open internet you should:
- Audit authentication and session handling.
- Double‑check file upload validation and permissions.
- Lock down admin routes and any debug tooling.
### Authorship & Intent
This codebase is intentionally **human‑directed but AI‑implemented**:
- **Human**: Decided the concept, tone, and the words you see on the page (headlines, copy, and general UX feel).
- **AI**: Translated those preferences into actual code, styles, and behavior, iterating purely via prompts rather than manual editing.
If you modify or extend this project, consider keeping a note here about which parts were human‑coded vs AI‑generated over time.