Why not become a lifetime supporting member of the site with a one-time donation of any amount? Your donation entitles you to a ton of additional benefits, including access to exclusive discounts and downloads, the ability to enter monthly free software drawings, and a single non-expiring license key for all of our programs.

You must sign up here before you can post and access some areas of the site. Registration is totally free and confidential.

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 difficult to integrate and maintain. These functions 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.

Very nice to hear of this project! I was reading about it, thinking 'cool', before I even looked at the publisher (was in Google Reader). A pre-written 'base site framework' not only avoids having to re-invent the wheel, you can be assured that it is securely implemented. Speaking of that, you will definitely want to have a strict versioning policy for this software. Every change must be analyzed from a security perspective. Of course, simply avoiding SQL injection attacks is usually sufficient, but when you have an open framework you know it will be put through the wringer! Scarily, if there ever was an exploit, they'd probably try it here first, under the assumption you use the same (or similar) code.

Anyway, this sounds like something I could use myself. I was planning to switch from my custom code to SMF for basic login and profile management, though don't like the idea of relying on SMF. I could easily see myself making use of YUMPS.

@Mouser - Noble. But please think it through carefully before you actually go down that path. Especially if you're seeking funding since many potential investors aren't interested in underwriting open source projects. So get the funding issue squared away before you decide on your license.

And until you settle on a final license, whatever you do release should be under a time-limited and restricted "development beta" license. Ideally with a non-disclosure clause attached. I've seen a few attempts at securing funding torpedoed because source code was released to people outside the original development group without a restricted license and NDA. Many investors - particularly private "angel" investors - have a problem with putting up money for something too many people know too much about. Or that the developer hasn't "adequately protected."

I've got a couple of Yii projects bubbling along (well, not very bubbling because I've got other things drawing on my time at the moment), and the user management on Yii is neat and powerful, but not delivered as a plugin... so the common user functions have to be pieced together each project.

Yeah i haven't figured out how modular i want to make it.. It should definitely be easy to disable features from the user's viewpoint, but i don't know how much work it's worth putting in just to avoid a few empty tables.

One of the lessons I learned from playing with Drupal is that even in the best cases, it can be messy to maintaining a bunch of modules that interact but can't guarantee each-others-presence. So my inclination for now is to build this as a complete integrated system (or rather as a single yii module) that is installed as an all-in-one solution.

I also must agree with 40hz about the license. Be CAREFUL! The largest issue is that it takes so little for some ahole to come and, completely legally, take your code - fork it - and call it his own. Seriously. He can then even starting selling the darn thing, though it must still remain open source. I've seen some people fork projects, add 'proprietary' 'extensions' that they make 'closed source' (yes, questionable) .. then sell the entire package, using your code to do the heavily lifting.

I like open source, but it really tends to be very unfair to the developer(s) who put the most into the project. I could see people paying a small fee for a commercial use license for this.

Importantly, you can make it open source without giving too much away. You just have to make the license terms sufficiently restrictive (dunno which boilerplate license is best).

As for investors, are you looking for investors? Be careful with that stuff. Sometimes it sounds like an obvious win, but in your case I'm not sure you'd be comfortable given x% of your project away to get a few dollars. These investors also like to demand they have control, like putting in a new CEO above your head to keep an eye on things. It depends on the arrangement. Usually these are best for 100% commercial projects that you intend to later sale to some larger company.

Lastly, be sure to keep differentiating yourself from the CMS competition! That is key here.

I'm not looking for investors since i don't think something like this can be sold.. But i'd be very pleased to find a company that would be willing to fund further development/customization for use in other projects, enough so i could keep working on it.

I'm not looking for investors since i don't think something like this can be sold.. But i'd be very pleased to find a company that would be willing to fund further development/customization for use in other projects, enough so i could keep working on it.

I don't know much about venture capital, as I believe most software companies these days can be run with such low overhead (initially) that they don't really need these people. But NOTHING is free in the world, and you always give up both a percentage of ownership and sometimes a hell of a lot of control. The VCs actually seem a little ... I dunno, but it doesn't seem right to walk in somewhere and get a huge bunch of money. The ability to get this largely depends on who you know, etc..

It's pushed just about everything else out of the way (NANY, coding, drawing, etc)... But it's an investment into my marriage that I'm very much looking forward to. It's also for me (which makes me feel selfish)... but hopefully it will reap dividends in other areas

I'm not looking for investors since i don't think something like this can be sold.. But i'd be very pleased to find a company that would be willing to fund further development/customization for use in other projects, enough so i could keep working on it.

this is really a project for programmers -- so it's not something that a group could deploy without having a programmer already. and i don't want to get into hosting business.

perhaps the best way to think about it going forward is i'll just use it to build the couple of sites i have it intended for, and look for the opportunity to build additional specific sites using it, as paid projects.

I have seen numerous F/OSS projects survive by charging for *custom* modifications to the base code. This will be in heavy demand, and is always a possibility. Of course, it is more work on top of what you've already done, but it will always be much easier for the original programmer to create add-ons and modifications than for any programmer who just became familiar with it. Just because sites have a programmer, don't take that to mean they wouldn't farm out work to someone else. Many 'programmers' do this for a living, not being great programmers themselves, or being busy, they hire people to do the real work.

Well, what's the latest? . I ask because I'm about to design a new site and wanted to eval this option over my own code. No prob if nothing been done, I know how that is, and no expectations anyway, was just curious for aforementioned reason.

I would also like it known that once YUMPS is complete, I plan to help mouser test it with an upcoming project for the site. I guess you could say that is why I hope to motivate him to continue the hard work he is doing on it. Please, do not take my joking as an attempt to insult mouser, but more a way to drive him to continue the many great things he does. I know what is in store and I think this new idea will serve the ideas behind DonationCoder quite well. I am very anxious to get started on it and can't wait for YUMPS to be completed!

I'm really hoping this becomes a "pluggable"/"isolated" user validation system. I currently have Linux validating against AD using Quest (via PAM) and adLDAP. I'd live a single point to alter for Yii support. I can supply Group Membership, etc. I just need 1 point to change for framework wide authentication.