Mudball
Mudball is the ProgClub web framework/toolkit software. That's the software that helps John deliver web-based database systems. It's a highly experimental and dynamic code base, not ready for public consumption. This project is a replacement for its predecessor PHPBOM. For other projects see projects.
Note: this project has now been moved to GitHub: https://github.com/jj5/mudball
Status
We use semantic versioning. Latest production version: unreleased. Latest development version: 0.1.
See TODO for work that still needs to be done.
Motivation
Why this software? Because I want a web framework and toolkit I can use to deliver data driven web applications that I completely understand and does what I want.
This framework/toolkit is still very much in the design and prototype phase, and I'm not yet sure how it will turn out in the details. I'm kind of just implementing bits and pieces as I find myself needing them.
This software is highly opinionated, but some of those opinions are weakly held. The name is Mudball because it implements the "ball of mud" design pattern. It also uses ambient context. No respectable person would like it. :)
Administration
Contributors
Members who have contributed to this project. Newest on top.
All contributors have agreed to the terms of the Contributor License Agreement. This excludes any upstream contributors who tend to have different administrative frameworks.
Copyright
Copyright © 2021, Contributors.
License
All Rights Reserved.
This will probably be released under an open-source / free software license one day, but not yet.
Components
Libraries, tools, services, or media from third parties used under license:
- LAMP stack (Linux, Apache, MySQL/MariaDB, PHP)
- SQLite
Resources
Data sources
URI schemes
We support URI schemes as listed here: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml
Country codes
We support ISO 3166 country codes as listed here: https://www.iban.com/country-codes
Downloads
There are no downloads at this time.
Source code
The repository can be browsed online:
https://www.progclub.org/pcrepo/mudball/branches/0.1
The latest stable released version of the code will be available from:
https://www.progclub.org/svn/pcrepo/mudball/tags/latest/0.1
Or if you want the latest version for development purposes:
https://www.progclub.org/svn/pcrepo/mudball/branches/0.1
Links
N/A at the present time.
Specifications
Functional specification
The functional specification describes what the project does.
Basically it's a collection of modules for use delivering data driven web applications and services.
Technical specification
The technical specification describes how the project works.
The software is constructed using a module system. Modules are somewhat arbitrarily classified as either 'critical', 'basic', 'util', or 'main'. A module is comprised of any of:
- a module class that delivers an implementation for the module's main functionality
- a service locator function to find and manage an instance of the module class (you can register a new and modified version of the module class with the service locator such as a stub for use during testing)
- a functional interface, being global functions which defer their implementation to an instance of the module class via its service locator
- any supporting PHP classes, interfaces, or traits definitions
- any supporting data
- a README file with the module's documentation
- a mud_{module}_example.php file with example usage
- a mud_{module}_test.php file with the unit tests
- a mud_{module}_play.php file for experimenting with the module's functionality via the command-line
- a mud_{module}_web.php file for experimenting with the module's functionality via HTTP
All modules are numbered and the rule is that modules can use modules defined before themselves but not modules defined after themselves. If modules have cyclic dependency (which is generally discouraged) they should have the same module number.
You can browse the modules here.
Notes
See versioning for information on our semantic version numbers.
Notes for implementers
If you are interested in incorporating this software into your project, here's what you need to know: this software is not ready for you yet, sorry.
Notes for developers
If you're looking to set up a development environment for this project here's what you need to know.
Get the latest code from the version branch:
$ svn checkout https://www.progclub.org/svn/pcrepo/mudball/branches/0.1 mudball-0.1
You need to install and configure svnman, then you can then run the unit tests like this:
$ cd mudball-0.1 && run-tests
Note that you may need to install some dependencies, such as:
# apt install php-cli
Note that presently we are not accepting patches for this project.
Notes for administrators
To release a version of this project use svnman:
First, run maintenance and commit any changes:
$ svnman sync
Then run the release:
$ release
You will be prompted to update the project documentation.
Generated documentation
N/A at the present time.