A professional website for Nacre-Images, a photographer specialized in photography workshops and photographic services in Normandy (Caen region).
Nacre-Images/
├── assets/ # Static resources
│ ├── fonts/ # Custom fonts
│ └── images/ # Site images (carousels, logos, etc.)
├── controler/ # MVC controllers
│ ├── dashboard/ # Administration pages
│ └── pages/ # Public pages
├── database/ # Database and API
│ ├── api/ # REST API endpoints
│ ├── tables/ # Data models (PHP classes)
│ └── connexion.php # DB configuration
├── public/ # Public files
│ ├── html/ # HTML/PHP templates
│ ├── js/ # JavaScript scripts
│ └── styles/ # Stylesheets (SCSS/CSS)
├── index.php # Main entry point + routing
├── robots.txt # SEO configuration
├── sitemap.xml # Site map
└── README.md # Documentation
- PHP 8.0+ with extensions:
- PDO
- MySQL
- Session
- MariaDB 10.3+
- Web server (Apache, Nginx)
- SSL certificate for production
Create a .env file at the project root:
DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=username
DB_PASSWORD=password
DB_NAME=dbCreate the necessary tables:
user- Administrator usersworkshop_type- Photography workshop typesworkshop_session- Planned workshop sessionsprices- Pricing gridservices- Offered servicesnews- Site newsfaq- Frequently asked questions
chmod 755 -R ./
chmod 644 -R ./assets/images/The site offers several sections:
- Home (
/) - Presentation and news - Workshops (
/infos-stage) - List of available training courses - Calendar (
/calendrier) - Session schedule - Services (
/prestations) - Photography services - Pricing (
/stage/tarifs) - Pricing grid - Contact (
/contact) - Contact information - FAQ (
/faq) - Frequently asked questions
Access via /dashboard with authentication:
- Calendar - Session planning
- Pricing - Pricing grid management
- News - News publishing
- FAQ - Questions/answers management
- Workshops - Workshop type creation/modification
- Services - Service management
- Email: Unique identifier
- Password: Hashed with PBKDF2 + salt
- Sessions: Automatic timeout management
Available endpoints (authentication required):
GET /api/get-sessions-by-date- Sessions by periodPOST /api/add-session- Create a sessionPOST /api/update-info-session- Modify a sessionDELETE /api/delete-session- Delete a sessionPOST /api/duplicate-session- Duplicate a session
POST /api/add-news- Add newsPOST /api/update-news- Update newsDELETE /api/delete-news- Delete newsPOST /api/add-question- Add FAQPOST /api/update-question- Update FAQ
- Touch and keyboard navigation
- Automatic autoplay with pause
- Responsive on all devices
- Lazy loading of images
- Time management (start/end dates)
- Optional images
- Controlled visibility
- Conditional display
- Clean URLs with rewriting
- Dynamic metadata per page
- Automatic sitemap.xml
- Configured robots.txt
- HTML5 semantic structure
- Models: Classes in
/database/tables/ - Views: Templates in
/public/html/ - Controllers: Logic in
/controler/
Compile SCSS files to CSS:
sass --watch public/styles/scss:public/styles --style compressed- ES6 modules with import
- Fetch API for AJAX requests
- Event listeners with delegation
- Responsive design with media queries
- Developer: SilvaUnCompte
- Repository: GitHub
- Website: stages-photos-nacre-images.fr
Non-Commercial License
This project is the property of Nacre-Images and Gilles Quesnot. All rights reserved.
✅ Permitted uses:
- View and study the source code for educational purposes
- Fork and modify for personal, non-commercial learning
- Contribute improvements via pull requests
❌ Prohibited uses:
- Commercial use of any kind
- Redistribution for commercial purposes
- Use as a template for commercial photography websites
- Selling or monetizing this code or its derivatives
Copyright (c) 2024 Gilles Quesnot - Nacre-Images. All rights reserved.
This software is provided "as is", without warranty of any kind. The authors disclaim all liability for any damages arising from the use of this software.
For commercial licensing inquiries, please contact: stages-photos-nacre-images.fr



