Project
View Panel
Status: Archived (historical project)

Hi and thanks for checking out View Panel.
This was the first big application I ever wrote. I started it as a teenager around October 2009, and it slowly mutated from a basic news posting system into a full blog package with an admin panel, themes, multiple blogs, and user accounts.
It’s a piece of history now. The code base is old, rough, and absolutely shows its age, but this is where I first learned how to develop something.
Project links
- GitHub: https://github.com/wilderyns/viewpanelblogger
- Original Google Code archive: https://code.google.com/archive/p/viewpanelblogger/
What it did
- Run multiple blogs from one panel
- Create, edit, and delete posts
- Configure blog introductions and sidebars
- Support themes (including a theme manager and theme metadata in MySQL)
- Support user accounts and rank/permission checks
- Include plugin and module scaffolding
- An installer that creates the initial database schema
How it was built
Aside from many long nights and weekends this was super early PHP reminiscent of the time. Looking over the code again we see:
- PHP 5 codebase with server rendered pages
- MySQL via the
mysql_*API - Cookie based login flow in the admin panel
- MySQL backed entities for blogs, posts, themes, users, settings, sidebars, and uploaded files
- File + database driven theme/plugin structure
- Small JavaScript and CSS layer (including jQuery assets)
Structure
Most of the system lives under admin/:
admin/install/sets up tables and initial settingsadmin/lib/pages/contains panel viewsadmin/lib/scripts/handles actions like posting/editing/deletingadmin/lib/functions.phphas shared utility and blog rendering functionsadmin/themes/holds installable blog themes
This project gave me my first proper exposure to:
- Feature growth over time
- Making things backwards compatible
- Data model changes (for example, moving more blog state from files into MySQL)
- Developing a relatively large project single handed
Why I still keep it online
I keep View Panel online because it’s the start of all this for me.
It’s not modern best practice, and I’d build it very differently now, but it taught me the basics.
Messy? Yes. Fun? Yes.

Also as a footnote someone going by the username “Grumpy Bear” added an issue to the original Google Code repository on the 24th of May 2011. He (or she) wrote:
Posted on May 24, 2011 by _Grumpy Bear_
When you are checking cookies at login, youdo not clean the data retrieved from the cookie. The cookie can be edited between logins, and a malicious user may edit the cookie, and inject sql to findo out information about what is stored in the database.
Alongside an updated login.php file now lost to time. Thank you Grumpy Bear for your contribution - sorry I never implemented it.