Skip to content

jebissey/MyClub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

578 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

MyClub โ€“ The ultra-light, fully customizable CMS for your association

PHP
SQLite
License

MyClub is a lightweight CMS tailored for associations.
It helps clubs manage articles, events, and members with an intuitive interface, user preferences, and built-in access control.

๐Ÿ‘ Tutorials๐Ÿ‡ซ๐Ÿ‡ท

๐Ÿ“– Manuals๐Ÿ‡ซ๐Ÿ‡ท


๐Ÿ“‘ Table of Contents


โœจ Features

  1. Articles โ€“ Members can read and share articles written by other members.
  2. Activity Management โ€“ Sign up for activities, export events to your calendar with iCal.
  3. User Preferences โ€“ Save your favorite event types and weekly availability to filter events.
  4. Secure Identification โ€“ Users log in via email; the first login requires using the "forgotten password" option to create a password.
  5. Mini CMS โ€“ Includes articles, events, and customizable pages.
  6. Database โ€“ All data is stored in an SQLite database.

๐Ÿ” Security & Authorizations

Security is based on groups. There are three types:

  • Groups with authorization
  • Groups without authorization
  • Self-registration groups

Available Authorizations

Authorization Description
Webmaster Full administrative access. Manage groups with authorizations
PersonManager Manage members and their groups without authorization (CRUD, import/export).
EventManager Create, edit, and manage events (scheduling, location, participants).
Editor Can publish public articles.
Redactor Write content and publish for restricted audiences (not public).
EventDesigner Define event types and their attributes, assign to groups.
HomeDesigner Customize the homepage layout, and all other settings.
KanbanDesigner Create/manage kanban projects.
NavbarDesigner Define navigation bars.
VisitorInsights Access visitor statistics and analytics.

๐Ÿงช Automated Route Testing

  • 180+ routes are automatically discovered and tested.
  • 1900+ routes are simuled to test each route with each authorization.
  • For routes with parameters (@), the JsonGetParameters column must exist in the test database.
  • For POST routes, the JsonPostParameters column must be filled.
  • Authentication can be simulated via the JsonConnectedUser column.
  • Results can be validated with Query and QueryExpectedResponse.
  • Each test row must define ExpectedResponseCode.

๐Ÿ‘๏ธ Examples

๐Ÿ‘‰ MyClub web application
Presentation of the web app, with articles and videos

๐Ÿ‘‰ Nordic Walking club website
BNW โ€“ Burgundy Nordic Walking

๐Ÿ‘‰ Static website (artist portfolio)
Paintings by an artist ๐Ÿ˜‰

๐Ÿ‘‰ Static website
About the Sinclair ZX Spectrum

๐Ÿ‘‰ Personal blog
Personal blog written and maintained by me

๐Ÿ‘‰ Test environment
Test MyClub instance


๐Ÿ‘๏ธ Manuals and tutorials (in French)

๐Ÿ‘‰ You are

๐Ÿ‘‰ MyClub Dictionary

๐Ÿ‘‰ Short videos


WebApp Summary - Multi-Role Management System

Overview

This web application is a comprehensive management system based on user roles, featuring specialized interfaces for different types of administrators and end users. The application follows a modular architecture with contextual navigation based on permissions.

Administrator Roles

๐Ÿ—“๏ธ Event Manager

  • Weekly Calendar: Overview of the next 3 week's events
  • Upcoming Events: Planning and tracking of future events
  • Invitation System: Sending personalized invitations
  • Email Management: Communication with participants
  • Pivot Table: Statistical analysis of events

๐ŸŽจ Designer

Interface divided into sub-specialties:

  • Event Designer: Designing event types and managing requirements
  • Home Designer: Configuring general settings and managing designs
  • Kanban Designer: Creation Kanban projects
  • Navbar Designer: Customizing the navigation bar

โœ๏ธ Redactor (Editor)

  • Article Management: Creating, editing, and publishing content
  • Media Library: Organizing and managing media files
  • Content Analytics: Top 50 most viewed articles
  • Analytical Dashboard: Cross-analysis of content

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Person Manager

  • Member Management: Member administration
  • Group management: User group administration
  • Registration management: Managing users registrations
  • Import members: From CSV files

๐Ÿ” Visitor Insights (Observer)

  • Traffic Analysis: Referrer sites and visitor sources
  • Page Performance: Page rankings by period
  • Advanced Analytics: Pivot tables for data analysis
  • Visitor Monitoring: Logs and traffic statistics
  • Real-time Tracking: Latest visits and user behavior

๐Ÿ› ๏ธ Webmaster

  • Technical Administration: Database browser
  • Group management: User group administration
  • Registration management: Managing users registrations
  • Maintenance: Set/unset website under maintenance mode

End User Interface

Personal Space

  • ๐Ÿง‘โ€๐Ÿ’ผ Account: Personal profile management
  • ๐Ÿ•’ Availability: Schedule and available time slots
  • ๐Ÿ” Groups: Membership in various groups
  • โญ Preferences: Customized settings
  • ๐Ÿ“Š Statistics: Personal dashboard

Community Features

  • ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Directory: Member directory
  • ๐Ÿ“ฐ News: Personalized news feed
  • ๐Ÿ—’๏ธ Notepad: Personal note-taking space

Authentication System

  • Custom Avatar: Emoji display or Gravatar image
  • Conditional Admin Access: Admin zone access button if authorized
  • Secure Logout: Logout system
  • Contextual Help: Integrated support

๐Ÿš€ Getting Started

This quick guide will take you from a freshly downloaded archive to a running and secured instance.

1) Download the latest release

  • Get the last relase here.

2) Upload to your hosting

  • Unpack the archive locally and then upload WebSite files to your hosting.

3) Log in with the administrator account and change email/password

  • Open your siteโ€™s URL and log ๐Ÿซฅ in using the initial administrator account { admin account = webmaster ๏ผ  myclub โ€ค foo ( admin1234 ) }.
  • Go to your avatar > Account ๐Ÿค”๐Ÿง‘โ€๐Ÿ’ผ:
    • Immediately change your name and email address.
    • Sign out and use forgotten password to create your password.

4) Create groups with authorizations

  • Navigate to Administration zone > Webmaster:
    1. Create groups with their authorizations ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘.
    2. Assign authorizations to user(s) ๐ŸŽŸ๏ธ.

Initial account & Webmaster group (fresh installs)

On a fresh installation the application creates one initial user account and one group named Webmaster.

  • The initial administrator account cannot be deleted and is the only member of the Webmaster group by default.
  • The Webmaster group holds the highest level of access but not enable to do everything directly.

Recommended first step: create a new group (e.g., Full) that is granted all available authorizations, then add your regular admin user(s) to that group. This lets you use a daily admin account for routine tasks while keeping the original initial account reserved for emergency recovery and sensitive operations.

5) Fill in the settings [HomeDesigner]

  • Go to Administration zone > Designer ๐ŸŽจ๐Ÿ”ง

  • Configure the general settings of the application (title, description, logo, etc.).

6) Create event types and requirements [EventDesigner]

  • Go to Administration zone > Designer ๐ŸŽจ๐Ÿ—“๏ธ/๐Ÿ“‹
  • Create event types (walks, meetings, trainings, etc.).
  • Define requirements and constraints for each type (duration, participants, equipment, etc.).

7) Create navigation bars [NavbarDesigner]

  • Go to Administration zone > NavbarDesigner ๐ŸŽจ๐Ÿ“‘
  • Design and customize navigation bars for different user roles.

8) Create self-registration and authorizationless groups [PersonManager]

  • Go to Administration zone > PersonManager ๐Ÿ‘ฅ
  • Create groups without authorizations, marked as self-registrable.
  • Add users to these groups.

9) Write articles [Redactor]

  • Go to Administration zone > Redactor โœ๏ธ
  • Write and manage articles (drafts, editing, formatting).
  • Review and publish articles to make them visible to groups or users but not the public.

10) Publish public articles [Editor]

  • Go to Articles list > Editor ๐Ÿ“ข
  • Review and publish articles to make them visible to groups, users or the public.

๐Ÿ’พ Data & Backup

All the site content is stored in a SQLite database:

  • Main data: WebSite/data/MyClub.sqlite
  • Logs: WebSite/data/LogMyClub.sqlite

A GFS backup is created every time an article is saved, stored under:
WebSite/backup/<years>/<months>/<weekdays>/

As the IT saying goes: โ€œAny data stored on a single medium is doomed to disappear.โ€
It is essential to regularly copy MyClub.sqlite to another physical storage to ensure data safety.


โ“ FAQ

If you encounter this errorโ€ฆ

โ€œError: could not find driverโ€

  • Causes:
    • PDO driver not installed/activated.
  • Fix:
    • Add/Enable extension=pdo_sqlite.

Internal error: Class โ€IntlDateFormatter" not found

  • Causes:
    • intl extension not installed/activated.
  • Fix:
    • Add/Enable extension=intl.