Grot Blog
(Blog Software)
I've decided to call the blog software I'm writing "Grot Blog". It's a joke. The "grot" is British English for, roughly, junk. There used to be a show on the air in the U.S. called "The Fall and Rise of Reginald Perrin". It was a British series, and part of the joke of which was that the title character, Reginald Perrin, opened a series of shops called "Grot", which sold useless junk. Fortunately or unfortunately for Reginald, the shops turned out to be a brilliant success, despite his attempts to sabotage them. I always thought it was a great joke.
- Objectives
- Easy to reconfigure
- Easy to "skin" or "theme"
- Generates "static" pages; no templating system
- Allows owners to upload their posts, without much vetting; no online editor-- use the one you like and upload the post
- Allows comments or not, depending on the post
- Filters input for security
- Avoids the use of RDBMS if possible, or minimal use otherwise
- Allows for addition of non-blog content, like "About" pages and such
- Generally follows MVC, but without a full framework
- Shows excerpts rather than full posts on any given page
- No front controller
- Directory Structure
- /config: for configuration type items
- /graphics: graphics
- /models: models
- /views: views
- /templates: more than one, configurable
- /libraries: misc code/classes
- /data: posts, comments, etc.
- What we want in the sidebar
- Months containing posts and how many
- Topics and how many posts for each
- Authors and how many posts for each
- Links to login/logout
- Link to administer everything, including adding a new post
- "Database" files
- config (ini file)
- data (EDI-style file)
- stats by month, number of posts
- stats by topic, number of posts
- stats by author, number of posts
- author,login, password, name, email
- post ID, timestamp (postid), author, topics, last_revision_timestamp, number_of_comments
- topic_code, topic_name
- Anatomy of data directory
- one directory for each post, named for the ID of the post
- post file
- author
- title
- topics
- excerpt file
- comments subdirectory
- comment files, named for ID of comment
- Pages needed
- add user
- delete user
- edit user
- show user
- list users
- add post
- delete post
- edit post
- show post
- list posts
- add topic
- delete topic
- edit topic
- show topic
- moderate comments
- add site nav category
- edit site nav category
- delete site nav category
- add site nav link
- edit site nav link
- delete site nav link
- show/edit config
- index.php to show current posts
This is one of the most detailed specs I've ever written for a project. And obviously, it's subject to change. The next issue is where to start coding.