Have a suggestion?

Click here to suggest a blog item.

Newsletters Archive

Catch up with DonationCoder by browsing our past newsletters, which collect the most interesting discussions on our site: here.

Editorial Integrity

DonationCoder does not accept paid promotions. We have a strict policy of not accepting gifts of any kind in exchange for placing content in our blogs or newsletters, or on our forum. The content and recommendations you see on our site reflect our genuine personal interests and nothing more.


Latest News

July 2, 2024
Server Migrations Coming

  • Donationcoder server migration is slowly proceeding, expect some hiccups as we get all our ducks in a row..

July 19, 2022
Software Update

Jan 3, 2022
Event Results

May 13, 2020
Software Updates

Mar 24, 2020
Mini Newsletter

Dec 30, 2019
Software Updates

Jan 22, 2020
Software Updates

Jan 12, 2020
Newsletter

Jan 3, 2020
Event Results

Jan 2, 2020
Software Updates

Dec 30, 2019
Software Updates

April 27, 2019
Software Updates

Feb 26, 2019
Software Updates

Feb 23, 2019
Software Updates

Feb 14, 2019
Software Updates

Jan 6, 2019
Event Results

Dec 2, 2018
Software Updates

Nov 13, 2018
Software Releases

July 30, 2018
Software Updates

June 24, 2018
Software Updates

June 6, 2018
Software Updates

Apr 2, 2018
Fundraiser Celebration

Apr 2, 2018
Software Updates

Feb 24, 2018
Software Updates

Jan 14, 2018
Major Site News

Jan 10, 2018
Event Results

Latest Forum Posts

Compelled to Donate
HI really like what you guys are doing. I know it is tough to be open, fair, and NOT get taken advantage of. As a user I fell more compelled to give when I am allowed to donate what it is worth to me.
A.N.
A.N. image

Our daily Blog

This page spotlights the most interesting posts collected from our forum every day.

You are viewing a specific blog item. Click here to return to the main blog page.

A new web project: YUMPS

montage.png
I wanted to make a brief post about a new web project i've been working on for the last month or so.

It's tentatively titled "YUMPS" (for Yii User Management and Project System) though that is likely to change eventually.

Motivation

Many website/webservice projects share a set of foundational needs:
  • Users can sign up and create accounts
  • Moderators have accounts that let them analyze site activity and track down and manage spam and spammers
  • An access control / permission system that lets administrator give certain users certain permissions on the site
  • The ability to send users messages on the site, and let users message each other

In addition one often needs:
  • Content creation/editing with attached file uploads and comments
  • Hierarchical Groups and Projects with user management within groups
  • Tagging and rating features.
  • Email notifications and approval queues.


Programmer Strategy

When faced with the need to create a new site/service that requires such functionality, a programmer has three main choices:
  • Use a medium/low-level framework (cakephp, codeigniter, yii, django, ruby on rails, etc.) or no framework, and custom implement these foundational features
  • Use a medium/low-level framework and combine several extensions/modules/plugins to handle user accounts and other features
  • Use an existing open source programmer-friendly content management system, and modify this code base for programmer-specific needs.

However, none of these choices are ideal.
  • While the basic functionality seems manageable, a huge amount of sometimes delicate code is required to implement these foundational features; rewriting this code for each new website project is unreasonable.
  • Trying to reliably combine and maintain a collection of extensions/plugins to perform these foundational features is extremely difficult to integrate and maintain. These funcitons involve a substantial amount of overlap and database table interaction in an ideal case, and existing solutions that employ modular standalone extensions for these various different features, are too fragile.
  • Content management systems are designed first and foremost for content creators, not for programmers. Even the most programmer-friendly CMS systems (for example Drupal) can be incredibly frustrating from the standpoint of creating a custom web service project that doesn't fit precisely into a Content Management approach.
  • What is needed is an integrated core foundational codebase that performs all of these key features, and that programmers can use to build new websites.


Overview:
  • YUMPS is intended to provide a foundation for a wide variety of web service and community websites that require user/group/project management features. It is built on top of the yii php framework.
  • Built for programmers not administrators, so the emphasis is on configuration-file and programmatic configuration -- rather than a friendly GUI for configuation of options.
  • Provides a complete and robust infrastructure for managing a large numbers of user accounts with arbitrary profile data.
  • Provides support functions for the user community, including a user-to-user messaging/mailbox system.
  • Provides a flexible group and project management system, which can be used to let users create and manage their own groups; supports hierarchies of groups and projects.
  • Emphasis on performance and security; easy to keep updated and diagnose issues.
  • Not a content management system (CMS); but rather a substantial foundation of code upon which to build custom community websites.
  • Powerful access control / permission system.


Background:

I have spent significant time trying to use Drupal as a foundation code base for the goals i've laid out here.  You can read my rants about Drupal here.  In brief -- while Drupal is an incredibly impressive product, with some fantastic features for coders, I have found it to be unsuitable as a foundation for custom non-cms sites.  I am much more interested in a mid-level framework that allows programmers to build custom user-based web sites/services (rather than a CMS system designed for non-programmers).  A huge amount of work has gone into making Drupal (and other such tools) incredibly flexible to configure from an administrative back-end side, wheras I am much less interested in that than in making a system that a programmer can customize and maintain.



My intention is to open source the project -- though I am very much hoping to find some way to fund continued development of it.  If you know someone who might be willing to help fund continued development please contact me!



I hope I will find some of you who might be willing to help code on it once the basic system is public.



Share on Facebook