views:

300

answers:

8

It's been a time since I've been on the freelance market, now I'd like to dive into that once again and I feel the best way to save private time and effort is to prepare myself some ready-to-go solutions for the most common needs. My list includes (some of them I have already done from past project, some will just write or adapt from various free code sources):

  • user authentication (that's obvious)
  • blog/news
  • comments
  • tagging
  • image gallery
  • ads/classifieds
  • buddy-list
  • shopping cart
  • polls

..what else?

The question: what other solutions do you have (or should I have) ready-made, to save time and be able to take more freelance jobs? It's about having a ready-to-go codebase, which obviously some modules of will have to be developped to meet client's needs. All ideas are welcome, from the most basic to the more complex ones.

My question is general and the tasks are language independent.

Edit: After Dave's answer I want to make clear: obviously most of simple tasks are alredy done in various opensource solutions, code.google, djangosnippets, etc, etc, and obviously I use it. The point of this questions is to have a kind of 'todo' list of tasks, according to which, one can build his own codebase consisting of opensource and self-written code, to get work done faster.

A: 

First Step: Find open-source versions of each and study them. Second Step: Decide what you like/don't like about each. Third Step: Decide for each whether it makes sense to reinvent the wheel.

Reinventing the wheel isn't necessarily a bad thing but you should do it after having studied the best solutions for each.

Dave Swersky
I didn't say I will reinvent anything, I even stated that will 'adapt from various free code sources', that's what I do :) The point of the list is to have a 'todo' to fill with various opensource and/or own code to get tasks done.
zalew
+3  A: 

Generic Data Access Layer

Error/Exception Logging (I use Log4Net)

Gary.Ray
+1  A: 

Calendar/event system

Kai
@Kai, can you give some examples of what's already out there that you like?
brainjam
+2  A: 

I know that this isn't that specific - but the best way to find out this kind of thing is to look at some of the projects people are asking for. What features do they have in common? Make note of the most requested ones and add those to your toolkit. For the features that are more obscure and that you might not use as much, at least educate yourself on how they work so in the event that you do end up making one, you have a general idea f how you're going to tackle it.

Also, consider using a framework if you're using PHP. A lot of what you want to do is done for you. If you don't want to use one, look at what they have done and consider rolling some of those features on your own.

ryeguy
+1  A: 

Strong client side library:

Menus, Ajax wrappers, Modal windows, DOM manipulation, Calendars... Well, all those are covered pretty well with Mootools / JQuery and friends.

Server side:
If you are into MVC DP then a strong, bug free, system/framework that will give you that.
DL, was mentioned.
Wrappers for Google APIs
Email sending/receiving library

Itay Moav
A: 

I also had similar idea, and I made sure that I saved very generic versions of my snippets and then elaborated in comments with them.

patricksweeney
A: 

I would suggest an alternate approach. Learn a CMS like Drupal. It has all those features already, you just install and customize. Drupal in particular also has the benefit of having a pluggable architecture, so you can just build a plugin for any component not already installed... Plus, you can profitably install and configure future modules for your client.

In response to the below comment:

I understand wanting "your own" code base. I am saying, make the Drupal code base "your own". It already has an authorization library. Hundreds of eyes have looked at it to rid it of bugs and security holes. And best yet, it is open source, so it already is "yours". You can take that code as your code base and modify it in any way you like. You can even get other people to pitch in and help you write some feature even for a project you are getting paid on.

Think of it this way. If you were a contractor building houses, you would surely want hammers, earth movers, pulleys, generators, and all kinds of other tools. You would also want some pre-built supplies, like a front door. You wouldn't try to build all those tools and supplies yourself just so you could build the one house. Similarly, an auth module (for instance) is a supply you can use to build a website (like the front door). Why build it yourself? You might have to slap your own custom coat of paint on it so it matches the house, but you can be more cost effective to the customer by getting a standard door. The customer will also have fewer problems repairing the door if it uses some standard height and width.

I'm just saying... if you want to retain your customers, you will have to be competitive. If you aren't doing these things, and your competitors are.. Well you'll probably find it pretty hard to stay self-employed...

Zak
I'm into developing modules for future reusage, regardless if it'll be part of a company page or a social networking system. I want to develop a codebase to focus on the creative job, I'm not into getting stuck in a 'CMS with plugins' world. However, maybe this advice fits into other readers' needs.
zalew
A: 

payment , especially for country specific providers

crivateos