From ProgClub
Jump to: navigation, search

Pcrego is the ProgClub member registration software. That's the software that processes member applications. For other projects see projects.


Released into production at ProgClub on 2013-07-26. Latest update on 2016-04-13.



Members who have contributed to this project. Newest on top.

Contractors who have contributed to this project. Newest on top.

All contributors (members and contractors) have agreed to the terms of the Contributor License Agreement. This excludes any upstream contributors who tend to have different administrative frameworks.


Copyright 2013-2016, Contributors.


Licensed under the New BSD license.



There are no downloads for this project.

Source code

The repository can be browsed online:


The latest stable released version of the code is available from:


Or if you want the latest version for development purposes:




Functional specification

The functional specification describes what the project does.

I would like a web-based application that accepts new applicants and stores their information in a MySQL database. Applications can have four statuses: awaiting email verification, pending account creation, active and ceased. An administrator will be able to get a report of accounts that are awaiting email verification, pending account creation (in order to configure new accounts), or ceased. Active accounts will be publicly listed on the home page. All four lists will be paginated with the page size being specified in the URL. All four lists will be sortable by: account number, registration date (and termination date for ceased accounts), username, wiki username, first name, last name, email address. The first name, last name and email address will be blank unless the user has given permission to publish their details.

Applicants will need to confirm their email address as part of the application process. So after they fill in the web application form they will receive an email with a link to confirm their email address. The email confirmation is there to prevent spammers from clogging up the system. After the user has confirmed their email address their application will be reported in the administrators' TODO list (pending account creation). Once the new member application has been processed by the administrator the application will be complete and the account will be active. An administrator can 'cease' any active accounts.

Technical specification

The technical specification describes how the project works.

The registration system will be a stand-alone PHP application hosted at https://www.progclub.org/members/

Data will be stored in a MySQL database with this schema.

Public interface is in /web, e.g. the front controllers:

  • /web/admin.php -- the front controller for the admin interface
  • /web/register.php -- the front controller for the user interface
  • /web/ajax.php -- the front controller for AJAX calls

The admin/register front controllers load pages which are found in /src/[controller]/page/[page name].


Notes for ProgClub administrators

To release a new version of pcrego:

$ pcrepo-release pcrego

Notes for implementers

If you are interested in incorporating this software into your project, here's what you need to know:

  • php 5.3+
  • php_pdo_mysql
  • jQuery 1.9+
  • Knockout 2.0+

Notes for developers

If you're looking to set up a development environment for this project here's what you need to know:

  • php 5.3+
  • php_pdo_mysql
  • jQuery 1.9+
  • Knockout 2.0+



Things to do, in rough order of priority:

Nothing to see here, move along!


Stuff that's done. Latest stuff on top.

  • JE 2016-05-09: improved form layout
  • JE 2016-04-13: fixed member creation script generation (there was a problem where it randomly dropped instructions, highly uncool)
  • JE 2016-04-13: better validation for usernames
  • JE 2016-04-13: friendlier/more useful messages (including warning about vcs list volume)
  • JE 2013-07-26: Design administrator login form /members/login
  • JE 2013-07-26: Process logout /members/logout
  • JE 2013-07-26: Design administrator account creation form /members/user (can create one account if there are no registered administrator accounts other wise requires administrator login)
  • JE 2013-07-26: Design the registration form /members/apply
  • JE 2013-07-26: Process the registration form
  • JE 2013-07-26: Confirm email address /members/confirm
  • JE 2013-07-26: List accounts awaiting email confirmation for administrators /members/pending
  • JE 2013-07-26: List accounts pending creation for administrators /members/new
  • JE 2013-07-26: List active accounts /members
  • JE 2013-07-26: List ceased accounts for administrators /members/ceased
  • JE 2013-07-26: Process account ceased (administrators can cease active accounts or accounts pending creation by clicking a button next to the user details)
  • JE 2013-07-26: Design the member details edit/update form /members/edit?id=1 (if ID not specified redirect to /members for active members list)
  • JE 2013-07-26: Process member details edit/update
  • BH 2013-07-22: created import page, additional user details and form validation
  • BH 2013-07-21: created edit/update page, front-end validation and finishing touches
  • BH 2013-07-19: created members list page with dynamic status dropdown
  • BH 2013-07-18: created pending and new member approval pages
  • BH 2013-07-16: created registration form, confirmation page, listing pending email confirmation members page
  • BH 2013-07-15: created administrator account creation form
  • BH 2013-07-14: created database design, administrator login page, logout page
  • JE 2013-07-13: Create the project in svn
  • JE 2013-07-13: created project page