Catz is the web application engine that runs catza.net, the world's most advanced cat show photo service. Developing Catz is a non-paid hobby. It is targeted only to one specific use and is not a general-purpose software.
The project is provided as open source because
- it is an example of a Perl web application using Mojolicious MVC framework
- maybe somebody learns something by looking at the code
- sharing the source code encourages me to write better code
- catza.net fans can see how catza.net works
If you get the code you don't get a working system since following parts are not distributed.
| file or path | purpose |
|---|---|
| /db | the SQLite database that is required by the system to run |
| /lib/conf.pl | the system configuration module |
| /lib//text.txt | the visible text strings for pages |
| /tmpl/content | content-heavy templates to provide textual pages |
| /data/newsmeta.txt | the tagged text source data file for news |
| ../static | the photos and static assets served by the service |
Here are some of the key points where to start browsing the source code.
| file or path | purpose |
|---|---|
| /lib/Catz/App.pm | the Mojolicious application |
| /lib/Catz/Ctrl | the controllers where Base.pm is the base controller |
| /lib/Catz/Data | data related procedural modules providing caching functionality, page styles, search syntax handling etc. |
| /lib/Catz/Load | procedural modules used only at data load time, not at runtime |
| /lib/Catz/Model | the models based where Base.pm is the base model |
| /lib/Catz/Util | procedural utility modules used all over the service |
| /script/create_master.sql | the database creation script |
| /script/load.pl | the data loading script |
| /script/run.pl | the script that fires up the application |
| /t | the functional tests run against the application |
| /tmpl | Mojolicious ep templates |
| /data | the tagged text source data files (note that they are updated only with software releases which is much lower pace than they actually change) |