CMS for scouting website

flexibel CMS (content management page), specifically for managing the website of a scouting organisation based on their needs.

HTML CSS PHP MySQL JS network DNS apache
← Back to Projects

Custom Content Management System

Full-Stack Web Application for Youth Scout Organization



Project Overview

This project represents a complete ground-up rebuild of a content management system specifically designed for a Belgian youth scout organization (Menapiers). The previous legacy system had become outdated, difficult to maintain, and lacked modern security practices (such as SQL injection proofing, causing a total deletion of the database) and flexibility. This comprehensive rebuild modernizes the entire infrastructure while preserving familiar workflows for existing users.


The CMS manages all aspects of the organization's web presence including page content, media assets, calendar events, team member profiles, social media integration, and website analytics. The system handles lots pages, hunderds of images and files, and serves multiple user roles with different permission levels. As of writing this, it gets around ~150 visitors daily.


Project Scope


Technology Stack

Backend Technologies


Frontend Technologies


External Integrations


System Architecture

Modular MVC-Inspired Structure

The application follows a modular architecture where each functional area operates as an independent module. This design pattern enables easy maintenance, testing, and future expansion without affecting other parts of the system.


Module Structure

Each module directory contains:


Database Architecture

Normalized relational database schema with proper foreign key relationships, indexing for performance, and data integrity constraints. The database includes approximately 30+ tables organized into logical groups.


Security Implementation

Multi-layered security approach protecting against common web vulnerabilities:

Authentication & Authorization


Input Validation & Sanitization



Password Management



Core Features - Detailed Breakdown

1. Dashboard Module

Central hub displaying real-time statistics and quick access to all CMS functions. The dashboard provides an overview of content status, recent activity, and system health.


Dashboard Features


Technical Implementation


2. Page Management Module (Paginas)

Comprehensive page management system with hierarchical structure, drag-and-drop reordering, and flexible content modules. Handles the entire website structure including navigation menus and subpage relationships.

Page Management Features


Page Content System

Each page can contain multiple content items (modules) of different types:


Technical Implementation



3. Media Library Module

Centralized asset management system for all images and files used across the website. Supports categorization, batch uploads, and usage tracking.

Media Library Features


File Management


Technical Implementation



4. Calendar System Module (Kalender)

Full-featured event management system with scheduling, recurring events, and export capabilities. Integrates with external calendar applications.

Calendar Features


Date/Time Handling


Technical Implementation


5. User Management Module (Gebruikers)

Complete user administration system with role-based permissions, activity tracking, and security features.

User Management Features


Security Features


6. Team Management Module (Leiding)

Manage organization leadership and staff member profiles displayed on the public website.

Team Features



7. Groups Module (Takken)

Management system for different youth groups/sections within the organization (age-based divisions common in scout organizations).

Group Features



Technical Implementation


8. Site Settings Module

Global website configuration and customization options.

Settings Features

Technical Implementation

9. Typography Module (Fonts)

Advanced font management system with Google Fonts integration for website customization.

Typography Features

Technical Implementation


10. Statistics Module (Statistieken)

Comprehensive analytics dashboard integrating Google Analytics 4 data directly into the CMS.

Statistics Features

Google Analytics 4 Integration

Technical Implementation



11. Social Media Module

Integration and management of social media feeds and content.

Social Media Features


12. Labels/Tags Module

Taxonomy system for organizing and categorizing content across the CMS.

Label Features


13. Help System Module (Hulp)

Built-in documentation and help system for CMS users.

Help Features


Help Topics Include



Advanced Technical Features

WYSIWYG Editor Integration

TinyMCE 6.8 implementation with custom configuration and extensions for content editing.

Editor Features

Technical Implementation

Drag-and-Drop Functionality

jQuery UI Sortable implementation throughout the CMS for intuitive content organization.

Sortable Elements

Implementation Details

AJAX Architecture

Extensive use of AJAX for dynamic, responsive user experience without full page reloads.

AJAX Operations

Implementation Pattern

Responsive Design

Mobile-first responsive design approach ensuring usability across all devices.

Responsive Features

Device Optimization


Performance Optimization

Database Optimization

Frontend Performance

PHP Performance


Development Approach & Code Quality

Coding Standards

Reusable Components


Version Control


Technical Challenges Overcome

Challenge 1: Session Management

Problem: Complex session handling with token-based authentication across multiple devices and browsers.

Solution: Implemented database-backed session tokens with expiration tracking, IP address validation, and automatic cleanup of expired sessions.

Challenge 2: WYSIWYG Editor Customization

Problem: Integrating TinyMCE with custom media library and maintaining clean HTML output.

Solution: Custom TinyMCE plugins for media browser integration, content sanitization on save, and restricted HTML elements for consistency.

Challenge 3: Drag-and-Drop Performance

Problem: Smooth drag-drop experience with large lists while maintaining accurate position updates.

Solution: Optimized jQuery UI Sortable configuration, AJAX batch updates, and visual feedback during operations.

Challenge 4: Google Analytics Integration

Problem: Complex OAuth 2.0 authentication with service accounts and GA4 API structure.

Solution: Custom PHP functions for JWT token generation, secure credential storage, and comprehensive error handling for API failures.

Challenge 5: Responsive CMS Interface

Problem: Creating a content management interface that works well on tablets while optimized for desktop.

Solution: Bootstrap customization with module-specific media queries, collapsible sidebars, and touch-optimized controls.



Key Takeaways & Learning Outcomes

Technical Skills Demonstrated

Soft Skills Demonstrated



Frontend changes

Alongside the complete overhaul of the CMS, I introduced a wide range of frontend improvements. Because the original website was quite outdated, many of its components were no longer compatible with modern browsers. To address this, I updated the codebase to ensure smooth performance across all current browsers, while still preserving functionality for users on older systems. In addition, I applied important security updates and refined the overall layout and usability of the site.



Search function

The previous version of the website did not include a search function, which made navigating the content far more difficult than it needed to be. To improve usability, I developed and integrated a fully functional search feature, allowing users to quickly find the information they’re looking for and enhancing the overall browsing experience.


Calendar & Scheduling Improvements

To make it easier for parents to stay informed, I introduced calendar section that provides a clear, organized overview of all upcoming events and activities. This new layout allows parents to quickly find the information they need without having to navigate through multiple pages.


I also added convenient calendar integration features, allowing users to import events directly into Google Calendar, Apple Calendar, Outlook/Office 365. These import options ensure that any updates made in the system are automatically synced to their personal calendars, making schedule changes effortless and reliable.

This upgrade was very well received, as it significantly streamlined communication.




Conclusion

This custom CMS project represents a comprehensive full-stack web development effort spanning database architecture, backend development, frontend design, security implementation, and user experience optimization. The complete overhaul of a production system for an active non-profit organization required balancing technical excellence with practical considerations such as data migration, user training, and maintaining organizational continuity.


The resulting system is a robust, secure, maintainable, and user-friendly content management platform that effectively serves the organization's needs.


This CMS continues to serve the organization effectively, managing their complete web presence, and serving their community with reliable, secure content delivery.