The SitePoint Forums have moved.

You can now find them here.
This forum is now closed to new posts, but you can browse existing content.
You can find out more information about the move and how to open a new account (if necessary) here.
If you get stuck you can get support by emailing forums@sitepoint.com

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

New PHP Project!! Suggestions Please...

I am learning PHP. i want to test my skills by creating a project. Now i don't know what i should be developing. I want to develop this project not only for learning but also for showing my skills too. so, in future if i apply for a job or something i can put this in my resume and can say i developed this project.

Can somebody please suggest something?? i know this sounds funny but i am thinking for over 2 weeks now and could not decide what i should develop.

I suggest you visit one of the many freelancer sites around. Albeit the prices people seem to be willing to pay are pathetically low, you might get some ideas... you don't necessarily have to bid! I won't name any sites, but google should spit out some interesting ones.

How about a spam hardened blog/wiki kit (with sample apps). Possible classes...
1) Should have IP blocking and ISP reporting.
2) Should have random text field names to cause robots headaches.
3) Should have e-mail authentication for known users.
4) Should have tests so that it can be refactored into what you want.
5) Should be able to import known IP block lists.
6) Should have Bayesian spam detection to block first posts.

The point is you can start with just the useful classes and build up complete apps. later.

How about a spam hardened blog/wiki kit (with sample apps). Possible classes...
1) Should have IP blocking and ISP reporting.
2) Should have random text field names to cause robots headaches.
3) Should have e-mail authentication for known users.
4) Should have tests so that it can be refactored into what you want.
5) Should be able to import known IP block lists.
6) Should have Bayesian spam detection to block first posts.

The point is you can start with just the useful classes and build up complete apps. later.

yours, Marcus

now that's a suggestion. thanks marcus. now i would sure try to do something like this. even though i don't know how it works lol. but, like i said i never made a project and i want to start. well you have to start somewhere. and i think its start for me now.

Well, what's important to you in your life, or at work, or to your friends that might be a little easier if it had the power of the web behind it?

The last project I did "just for fun" stemmed from me hearing my family practically batter each other over the head with the "what do you want for Christmas" or "for your birthday" or what does he want, what does she want?!?!?!?! So I developed the "Family Gift Registry" for my family so everyone can log into their own accounts and add whatever they want (no matter how small or ridiculously expensive). This way we have an idea what to get each other and we also learn about each others tastes. Plus we are somewhat geographically disbursed and the web-based thing really helps. My next rev is planned out and will include "Library" functionality (thought being I keep hearing other family members say "I just rented this movie the other night" and it burns me up if I already have it and could have lent it to them; vice versa when I find out they own something that I just rented)... this will allow them to see what others own (movies, books, cds, whatever) so we can help each other out a bit.

Now, not that I suggest that you go out and program a registry site... just an example of how I came up with a side project to do that also added value to my life.

A budget program is another avenue... everyone and their Mom does "the books" in their household slightly different; maybe suit a program to how you would do it.

well trogdor1024 i have to agree that is some great project (atleast to me). and i really appreciate you came out to suggest me. thanks. that gives me some more choice to decide. one thing i have admit about i should some brain storming myself.

You might want to extend on the idea Marcus provided and work on making the Spam filtering system independant of the Wiki system, and possibly do these as two separate projects. The wiki would be simply there to provide some sort of "use case" for the spam filtering system.

Your spam filtering system ideally would be some sort of API based on a collection of classes for each main type of filter.

Marcus sort of suggested / hinted the idea of keepting these separate in his last line of text. This way the spam filtering system is a set of useful classes that work as an API, and thus can be used in any project.

I don't know if there are any good spam filtering classes out therefore this, but if there are they problably aren't too well written (nasty proceedual code with globals etc). The trick to this sort of stuff is to think out your overall design well. Espcially as it's going to be an API for filtering spam. Like anyone who writes an API or framework, it will be hard to get it right first time (interface wise for the classes and their methods). Very few people can write a good API from scratch, and therefore having a Wiki app as a test case would be a useful way to ensure your API interface is logically setup (it's almost like having a "customer" for a project in some sense if your someone with agile programming knowledge/experience).

Don't be scared to ask people here for their advice when it comes to design. People won't design everything for you, however if you propose a design and ask for feedback, people will help you as it shows you have thought about things (it also gives people an idea how you are thinking, and therefore helps them help you). (There's nothing worst when people ask for help but really expect others to *do* everything because they are too lazy to think/learn)

Anyway, good luck. Keep us posted how you get on. maybe you'd realise the classes open source if you complete them!

On another side note, remember try not to make the project too big. Focus first ona small bunch of spam filters then work on a mini wiki type app. If you try to see these two related projects and not one big project, I think it will be more manageable. Big projects never seem to work out I find when you are doing things for the "learning curve". The nice thing with the spam filtering idea is that each of the filtering systems can be written independantly so you hopefully won't have an unmanagably large project that is not easy to focus on.

Out of interest, what sort of previous skills do you have with programming. I sort have talked down here assuming your fairly new to web programming and OO stuff because picked up on the word "learning" (So don't be offended if you have some PhD in computer science ;-) )

ok about my experieince i have experience with OO stuff and i feel more comforatable with OO than procedural. i am not advanced though coz i din't practice much. i don't like to use other people's API (as long as i can afford). its not i don't like there code or something its just i like to code myself. this way i can learn more.

now if the question i am going to ask is not dumb then can you please answer.
i know what BLOG is what i don't know what wiki is REST ASIDE spam filtering.

can you give me a short description and/or point to a tutorial that i can read and get a hang of it.

sometimes i feel i am posting in Advanced PHP Programming but my questions are not advanced. so, i am not sure is it still ok to post in this section because all people who post here are experts.

A future point of expansion for the SPAM might be to enable a HoneyPot somehow. Particullarly for Wiki's it would be nice to allow them to think it was working but silently drop their content.

Also, it might be nice to have a "tar-pit" as well, say for blog comment. If you detect the spammer, never send a response back, but never disconnect as well. Make they user agent hang around waiting for the response so they don't get to spam as many people.

Also,also, moderation sucks. If you get confidence in the system, it would be nice to have everything automated (at least as an option) instead of requiring user action.

Regarding tar pit nasties, issuing a redirect to a self redirecting page is nice (although they keep hitting you on that page you can add a one second delay as well) or redirecting to 192.168.254.254 can cause them some head scratching when they look at their logs. Streaming one random word a second forever is another of my favourites. Less load on you, but you need to have spare connections available if they are dumb enough never to timeout.

As for an example Wiki see the Wikipedia amongst many others. basically they are web pages that can be edited on the web.

Indeed. Deleted over 700 this weekend. Just checked and I have over 500 more waiting today. Just displaying the moderation page gives my browser a workout. Have they not heard of the concept of a pager? All I can say is

DELETE FROM wp_comments WHERE comment_author_url like '%poker%' OR comment_author_url like '%picture%' or comment_author_url like '%porn%' OR comment_author_url like '%pics%' or comment_author_url like '%video%' or comment_author_url like '%cream%' or comment_author_url like '%sex%' or comment_author_url like '%hold%'

Here was my own little "modification" to wordpress which significantly reduced the volume of email I have to moderate. I use a "three strikes your out" model. If I have to moderate you three times, something about you goes into my kill file.

sometimes i feel i am posting in Advanced PHP Programming but my questions are not advanced. so, i am not sure is it still ok to post in this section because all people who post here are experts.

Don't worry too much about posting in this forum: if the people or the moderators here think that your post is not advanced enough, or could be better answered in a different forum, then your topic will be moved. After a couple of misplaced topics you'll learn where to post which topics.

The only thing you should worry about: I've seen beginners post really simple questions here, and they sometimes end up with very advanced answers. So if you're not ready for lengthy discussions about which pattern to use and how to apply MVC to your application, maybe you should post your questions in the regular PHP forum.

* I see you've just started off a discussion about spam filtering.... which proves my point quite nicely *

But if you're not afraid of starting complex discussions, and you understand enough of what people here are discussing, then feel free to post your questions in this forum.

WIKI: Software that allows many people to work together on a single website. Usually there are no real administrators who decide what people can post, so the community itself has to manage the content, adding new things, and removing old content or spam. Wikis are not easy to build; I'd rate them as 'pro' (one step up from advanced).

SPAM FILTERING: Since anyone can post content on a wiki (or in a weblog's comments), people are starting to use them for commercial links and content. So anyone with a blog will find posts about certain medicines (Vi*g*a) etcetera in their comments. The blogging/wiki communities are now trying to find out how to counter these spam messages, which are often created by some automated process. One way is to make it harder for people or scripts to post content, another way is to filter all submitted content with a 'spam filter', and filtering out posts with suspicious words.

As for a suggestion: I don't really have any (sorry). Maybe you can come up with something that works for you if you try to find out which things take too much time in your real life, or which don't work well (like trogdor1024's example).

Thanks for the suggestions everybody. i know its going a bit advanced BUT i also know i have to be here someday and i have to start somehow.
i know i posted my question here for some suggestions but i was a bit ready and expecting for it to be advanced.
and thanks for the code bit everybody. i am writing everything down and i will start on something very soon. BUT, Please keep on suggesting.

again can somebody please list some open source blogger/wiki and/or spam filter so i can understand what are these