FRIHOSTFORUMSSEARCHFAQTOSBLOGSDIRECTORY
You are invited to Log in or Register a Frihost Account!

Big, complicated php project: 10,000 frih$

 


ocalhoun
I might possibly be able to do this project myself, but when I do programming, it tends to end up strange and over-complicated, so I'm offering the opportunity for somebody else to do it.

What I need:
This is for the Equine Dream Foundation.
I need an online database front end to keep track of the growing variety of known magic spells the foundation has accumulated.
Most of these spells are untested, and surely nearly all of them are false, but perhaps one or two are real... But, we need a better way to keep track of them!

So, I'm asking you to make this system from scratch.
Though, you could make it based on a Wiki system, or perhaps some other type of established system, but if you do that, the system you use will need some big modifications.

Needs to include:
*login/registration system (it would be awesome if you tapped into phpbb3's login system, but this is not required.)
*A listing of spells, which can be sorted and filtered based on any of the data associated with each one.
*A search system
*Each listing of a spell should include all the data about it, on its own page. What needs to be tracked will be mentioned later, including ability for users to post comments about the spells.
*Registered users should be able to add spells to the database, and edit the ones they added.
*It should take into account the possibility that there could be one spell that goes by several names, or vice versa, there could be one name that several spells are called.
*It should also incorporate a system that people use when trying one, which will be described later.
*In style, it should mostly match the forum: http://www.community.equinedream.org/, but it should also incorporate a little of the design from http://www.equinedream.org and http://www.stories.equinedream.org.
*It needs to be secure, and hacker safe. The spells should not be viewable to non-members. Member validation is another very good reason for it to be linked with the forum's login system, the users of which are already validated. Ideally, only forum members who are part of the 'users' group would have access to this system.

The data that needs to be tracked for each spell:
(R) =users can search for spells based on this data
(S) =users can sort spells by this data
(F) =users can filter spells by this data
*Name(s) of spell (R) (S) (F) (Several medium text variables)
*Description (R) (one long text)
*Supplies needed (R) (F) (one long text, or several short texts, your choice)
*Instructions (R) (long text)
*Danger ratings, from the discoverer, users who didn't try it, and users who did (S) (F) (number, 1-10)
*Source where it was gotten from (R)(S)(F) (link or medium text)
*Initial discoverer's rating of the likelihood of this spell to work (S) (F) (number, 1-10)
*Likelihood rating of users who haven't tried it (S) (F) (number, 1-10)
*Users who are trying it right now (F) (short text (username) for each user)
*Users who tried it (R) (F) (short text (username) for each one)
*Ratings and comments from each user who tried it (separate from comments and ratings from users who haven't tried it.) (R) (S) (F) (long text AND several numbers (mentioned later), 1-10)
*Success rating for users who have tried it (This success rating needs to take into account multiple attempts and partial successes... for example, a spell that worked perfectly once, and didn't work at all once would have a rating of 50%; A spell that worked 90% of the time, but only did 50% of what it was supposed to do would have a rating of 45%.) (S) (F) (percent, 0-100)

Ratings for users who have tried it; a user who tries a spell can rate it on all these qualities... each one should include an option for 'no comment or N/A'. All should have a 1-10 scale. All should be sortable and filterable, and displayed (preferably in graphic format) on the spell's page:
*Likelihood that it will work someday
*Likelihood that it is real
*How dangerous it is to try
*How difficult it was
*How well it worked (0 to 100 percent)

The spell experimenting system.
ocalhoun wrote:

Let's suppose you click on the 'try this spell' or the 'try a spell not in the database' links...

Then you'd get a form like this:

_ I will try the spell with others physically present to help (no more information needed)
_ I will be trying it alone (fill out the rest of the form)

(if they click the first option there, the system still needs to have a way to track how well it worked; there should be a 'record results' link on the spell's page, which will take the user to a page similar to the one described later which will be linked to from the second email.)

The spell you will be trying: (automatically filled out if it is one in the database)
Description of the spell: (automatically filled out if it is one in the database)
Anything you will be doing differently than the spell says: _______________________________________________________
I plan to try the spell around this date: ______________
I will contact the Equine Dream to tell if the spell worked or not before: ____________ (If you miss this date, we will have to assume that you have been transformed permanently, and carry out your instructions.)
>>EMERGENCY INFORMATION<<
This information will NOT be shared with ANYONE unless the spell works and you are unable to contact us!
Real Name: _______________
Physical location (address): ________________________________________________________
Phone number (to verify that you actually transformed, not just forgot to contact us): _____________
Instructions for us to carry out if you've transformed: _____________________________________________________________
__________________________________________________________________________________________________________
__________________________________________________________________________________________________________
(Please make every effort before transforming to make these instructions easier to carry out.)
(Example 1: Please come get me at my address, then take me out to XXXXX and release me into the wild.)
(Example 2: Please come get me at the location I was using the spell at: XXXXXXX, then sell or give me to a loving home, preferably a breeding farm...)

(this information should be saved for the user, to make trying multiple spells easier, but it should be easy to change each time you use the form, and it should not be visible to other members.)
[SUBMIT]


Once you filled out this form, it would tell the server to send you an e-mail immediately, which would include a link for you to click to verify that you can receive e-mails from us (to prevent false alarms because of people who never receive the e-mail.)
Then, the server would send you an e-mail on the date that you said you'd be trying the spell on, it would include a link that you are only to click on AFTER trying the spell.
If the link in that e-mail still hasn't been clicked by the 'no later than' date, then the server will send me, and perhaps some others (a 'rescue team'?) an e-mail containing that person's emergency information, and we'll call the phone number supplied.
If we repeatedly get no answer, or someone else picks it up and says "No, we haven't seen Johnny around for days, but this animal just showed up in his room...", then we'll know that this is for real, and we'll do our best to carry out the instructions given.

(Oh, and the link in the first e-mail will take you to a reminder of the importance of the second e-mail. The second e-mail's link will take you to a form where you can record the results of what you tried. (Or just click the 'I don't need to be rescued' button if you're lazy and don't care about helping. Actually, on second thought, the 'I don't need to be rescued' wouldn't be a button, it would just be assumed as soon as that page opens.))

When someone clicks on the link in that second e-mail, the page they are taken to should ask them to rate how well the spell worked (0% to 100%), and it should ask them for a description of what happened.

Whoever does a satisfactory job of this will get 10,000 frih$. 1,000 when you accept, and 9,000 when you finish. If multiple people end up working on it, each will get the initial 1,000, but only the first GOOD one done will get the $9,000

You can use any programming language you want, but it needs to be able to run on frihost's server. MySQL is the database you should use. I would prefer that you use php and html, because I know those, and it would make it easier for me to edit it if I need to. Please, also, make it easy to install and change... have particular files that include all the styling, files that include all the wording and messages, files that include the MySQL access information, so that if I have to change these things, I don't have to manually edit 300 individual files the same way.

Also, please take on the project only if you really plan to complete it, and have the time to do so within at most a month or two; don't leave me waiting for a lot longer than it would have taken to do it myself.

To accept the job or to ask me any questions, you can reply here, e-mail me, or send me a PM.

Please do not turn this thread into a debate about how real magic is.
I need this done, no matter if magic is real or not, because either possibility must be investigated and proven before it can be assumed by my foundation.
rvec
I think this could be easily done with drupal. I could set something up which would do most of these things in less than 30 min. I'm just really bad at design, so if someone could do that part I'm willing to share the frih$ Smile .
ocalhoun
rvec wrote:
I think this could be easily done with drupal.

I'm not so sure of that, but you can try if you want; I'll do the design part of it myself if need be.

This drupal seems to be much more oriented towards being the main feature of a mainstream site; I'm not sure really (even after looking at it for a while) how you would adapt it to function as what is essentially just a database front-end. And, even if it did, I'm sure it would include lots of stuff that didn't need to be there for the simple purposes I need.
But, if you want to try it, go for it! We'll see how well it worked when it is finished.
rvec
Drupal is very modulair, so most stuff can easily be turned off, and extra stuff can be easily made.

My idea is to use drupal and add a module that I would make to add the extra stuff that you'd need. The big advantage of using drupal instead of writing this from scratch is that there's already a login function, a search function and something called taxonomy that would be ideal for doing these:
Quote:
It should take into account the possibility that there could be one spell that goes by several names, or vice versa, there could be one name that several spells are called.

Quote:
Supplies needed (R) (F) (one long text, or several short texts, your choice)

Quote:
Source where it was gotten from (R)(S)(F) (link or medium text)


And with the cron option it's real easy to make it check if any mails need to be send daily (and maybe even put them in a queue to send a max per cron run).

edit: A couple of questions:
Should the Emergency information be some kind of profile fields (meaning there can be only one of each per user and not per user/spell) or should they be set per spell the user tries?
The advantage of profile fields would be that a phone number only has to be changed only once instead of for every spell. The downside would be that you can't have different phone numbers for every spell (not sure if that's a disadvantage actually).

Should a user also have to validate their mail if they already validated it once?

Should a user get a mail on registration (and if they do should the first mail when trying a spell be send)?

edit2: You should use sessions in your signature to save which was the last image the user got. That way he won't have to click on the same image again, but you'll be able to redirect him instandly.
ocalhoun
rvec wrote:
Drupal is very modulair, so most stuff can easily be turned off, and extra stuff can be easily made.

My idea is to use drupal and add a module that I would make to add the extra stuff that you'd need. The big advantage of using drupal instead of writing this from scratch is that there's already a login function, a search function and something called taxonomy that would be ideal for doing these:
Quote:
It should take into account the possibility that there could be one spell that goes by several names, or vice versa, there could be one name that several spells are called.

Quote:
Supplies needed (R) (F) (one long text, or several short texts, your choice)

Quote:
Source where it was gotten from (R)(S)(F) (link or medium text)


And with the cron option it's real easy to make it check if any mails need to be send daily (and maybe even put them in a queue to send a max per cron run).

Starting to sound much better now...
Sure! Let's go for it. *sends first 1000*
Quote:

edit: A couple of questions:
Should the Emergency information be some kind of profile fields (meaning there can be only one of each per user and not per user/spell) or should they be set per spell the user tries?
The advantage of profile fields would be that a phone number only has to be changed only once instead of for every spell. The downside would be that you can't have different phone numbers for every spell (not sure if that's a disadvantage actually).

Well, I think the form for it should come up every time, to make sure the data is accurate, and because it may change from spell to spell, BUT, it would be nice if the fields were already filled out when they came up, so the user can just click submit if nothing changes.
Quote:

Should a user also have to validate their mail if they already validated it once?

Hm, would it be possible to make it so that they would have to validate it over again if more than a week had passed since the last time they did?
Quote:

Should a user get a mail on registration (and if they do should the first mail when trying a spell be send)?

An e-mail validation mail on registration? No, it shouldn't be needed with the per-spell validation.
Quote:

edit2: You should use sessions in your signature to save which was the last image the user got. That way he won't have to click on the same image again, but you'll be able to redirect him instandly.

I didn't know that was possible, since the only php code is in the image file itself... I'll look into that though; it would be a more elegant solution.
Relentless
Just curious?


Did this work out?
I would like to know what type of free CMS's are out there which can do this.
deanhills
I'm not an expert but the little experience I have is that one has to design the database while you are online (preferably), rather from the outside in with cut-and-paste code. I.e. you need to log into the Website and design the database while you are online. I did something small a couple of years ago and found that the only really effective way.

Ocalhoun, I think you are the best one for the job. This is far too complicated to give to someone who will only be paid in Frih$ and since so much hard work is involved against very high standards, this may create opportunities for disagreement. In addition, you can intimately sort out the hurdles as they arise and troubleshoot them instantly, giving you direct control.

I would not hesitate to get someone to design a Website for me, but this is different and more individual. You also have very high standards. You may even improvise your design as you work through the project as usually you become creative as you troubleshoot all the hurdles. It will also be very satisfying at the end of it and following that you can tweak it much easier than what you would have been able to do if someone did the design from the outside in.
rvec
I don't think it's better to make your own website if you can find someone that's better than you. You'd get loads of design problems and zero scalability on your first couple of sites so making someone else make it doesn't look like a bad idea to me.

Also ocalhoun made quite a nice description of what he wants, so I don't think there can be much mistakes about what he wants. If any would arise I could easily change most since the code I make is very simple and only is a module in a CMS.

Quote:
I'm not an expert but the little experience I have is that one has to design the database while you are online (preferably), rather from the outside in with cut-and-paste code. I.e. you need to log into the Website and design the database while you are online. I did something small a couple of years ago and found that the only really effective way.

I'm sorry I don't follow you. But since I can see this has something to do with database design I'll explain how I am going to do that. Drupal has a very clear and well designed database, I only add 2 new tables and my database design is done.

Quote:
Ocalhoun, I think you are the best one for the job. This is far too complicated to give to someone who will only be paid in Frih$ and since so much hard work is involved against very high standards, this may create opportunities for disagreement. In addition, you can intimately sort out the hurdles as they arise and troubleshoot them instantly, giving you direct control.

I write stuff like this for living. I work in a company that makes websites with drupal. Even though I work for frih$ I'll still keep the same standards as I would at work, and I'll still make everything easy to understand and conform the drupal coding standards.

If Ocalhoun would want to edit anything he'd have a nice documentation of all the drupal functions and me here in frihost (and irc). And because it's so well documented other developers could easily take over if ocalhoun only sends them the module I made (3/4 small files).

The other advantage of drupal is that it heavily developed by a big community so you'll get updates (about once a month) and will always be sure you'll have a secure system. And you'll see there's a new update in the admin panel of the website.

@Relentless drupal will work, I just need one or two more weekends.
deanhills
rvec wrote:
I don't think it's better to make your own website if you can find someone that's better than you. You'd get loads of design problems and zero scalability on your first couple of sites so making someone else make it doesn't look like a bad idea to me.

Also ocalhoun made quite a nice description of what he wants, so I don't think there can be much mistakes about what he wants. If any would arise I could easily change most since the code I make is very simple and only is a module in a CMS.

Quote:
I'm not an expert but the little experience I have is that one has to design the database while you are online (preferably), rather from the outside in with cut-and-paste code. I.e. you need to log into the Website and design the database while you are online. I did something small a couple of years ago and found that the only really effective way.

I'm sorry I don't follow you. But since I can see this has something to do with database design I'll explain how I am going to do that. Drupal has a very clear and well designed database, I only add 2 new tables and my database design is done.

Quote:
Ocalhoun, I think you are the best one for the job. This is far too complicated to give to someone who will only be paid in Frih$ and since so much hard work is involved against very high standards, this may create opportunities for disagreement. In addition, you can intimately sort out the hurdles as they arise and troubleshoot them instantly, giving you direct control.

I write stuff like this for living. I work in a company that makes websites with drupal. Even though I work for frih$ I'll still keep the same standards as I would at work, and I'll still make everything easy to understand and conform the drupal coding standards.

If Ocalhoun would want to edit anything he'd have a nice documentation of all the drupal functions and me here in frihost (and irc). And because it's so well documented other developers could easily take over if ocalhoun only sends them the module I made (3/4 small files).

The other advantage of drupal is that it heavily developed by a big community so you'll get updates (about once a month) and will always be sure you'll have a secure system. And you'll see there's a new update in the admin panel of the website.

@Relentless drupal will work, I just need one or two more weekends.
I obviously do not have a clue how drupal works, the first time I heard about it is when I joined Frihost. So in all you say rvec I stand corrected. Thanks for taking the time to explain how it works.
rvec
I have a first version of the site where the basic drupal and some small extra stuff works. I'll put it online and make a demo user and a (limited) admin user so you can see some of the possibilities.

edit:
normal user:
U/P: demo_user/demo_user
spell admin:
U/P: demo_admin/demo_admin

URL: http://www.ytal.nl/equine_dream

I'll pm ocalhoun with a master admin password/username.
ocalhoun
rvec wrote:
I have a first version of the site where the basic drupal and some small extra stuff works. I'll put it online and make a demo user and a (limited) admin user so you can see some of the possibilities.

edit:
normal user:
U/P: demo_user/demo_user
spell admin:
U/P: demo_admin/demo_admin

URL: http://www.ytal.nl/equine_dream

I'll pm ocalhoun with a master admin password/username.

Looks good so far. Looking at it, these are the issues/bugs I found:
-Needed supplies and source didn't show up on preview when making a new spell entry.

-demo_user and demo_admin U/P's can't log in. Logging in as the main administrator and looking at the user list seems to show that there are no such users. Not a big deal now, but later on it will be important to test out the permissions.

-Text below likelyhood rating box should mention not to add a '%' mark after the number, and preferably would have some validation to prevent bad entries, including rejecting entries with anything other than numbers in them, since that apparently makes the actual data stored be 0. (Also, when displaying it, please add a '%' after the number.)

-When displaying, needed supplies have no commas or spaces in between them, making it hard to read.

-Instructions don't seem to enter in correctly. The data displayed is blank. Perhaps I was doing it wrong, as the spell you entered had instructions.

-Comment module should probably be used (or reinvented) so users can comment on spells, maybe that's just one of the things you haven't gotten to yet.


Thanks for working on it!

Like deanhills said, I probably could do it myself. However, the result wouldn't be as good or as secure (I really don't understand login systems Sad ). Also, I'm already working on a different project, and don't want two projects at the same time.
rvec
ocalhoun wrote:

-Needed supplies and source didn't show up on preview when making a new spell entry.

-demo_user and demo_admin U/P's can't log in. Logging in as the main administrator and looking at the user list seems to show that there are no such users. Not a big deal now, but later on it will be important to test out the permissions.

-Text below likelyhood rating box should mention not to add a '%' mark after the number, and preferably would have some validation to prevent bad entries, including rejecting entries with anything other than numbers in them, since that apparently makes the actual data stored be 0. (Also, when displaying it, please add a '%' after the number.)

-When displaying, needed supplies have no commas or spaces in between them, making it hard to read.

-Instructions don't seem to enter in correctly. The data displayed is blank. Perhaps I was doing it wrong, as the spell you entered had instructions.

-Comment module should probably be used (or reinvented) so users can comment on spells, maybe that's just one of the things you haven't gotten to yet.


Thanks for the feedback.
I updated the database yesterday because I made some new changes, and forgot to add the users again. This update might also be the cause of some stuff not showing up or not being submitted correctly.

Yeah the likelyhood is still on my todo.

The commas should be easy to add, will do.

I'm making something else, which might be based on the comment module, but it needs more options.

edit on 6/25:
Comma issue solved, users re-added, instructions should work now, supplies and source show up now.

currently known problem:
"try this spell" page is only half done.
Titles disappear. (solved)
Permissions don't always work right (solved)
likelyhood issues (solved)


Did I get this part right?;
Users can enter energency information and edit it in their profiles.
When trying a spell they are showed that same information and have the ability to change it.
The submitted information is saved to the spell and is saved to the user-profile.
The next time a user want to try a spell the data is fetched from the profile, which could be different from what was used for the last spell.
This way a user could have different emergency information for every spell and edit it at his default settings at his profile at any time.

BTW I work on a mercurial repository, if you want to see the code, my changes and read along with my progress I could make you an account on my server.
ocalhoun
rvec wrote:


Did I get this part right?;
Users can enter energency information and edit it in their profiles.
When trying a spell they are showed that same information and have the ability to change it.
The submitted information is saved to the spell and is saved to the user-profile.
The next time a user want to try a spell the data is fetched from the profile, which could be different from what was used for the last spell.
This way a user could have different emergency information for every spell and edit it at his default settings at his profile at any time.

Very right! I hadn't thought of doing it that way, and it's better than what I would have done. You made an accommodation for a user wanting to try two different spells with different instructions at the same time, when I hadn't even thought of the possibility.

Quote:

BTW I work on a mercurial repository, if you want to see the code, my changes and read along with my progress I could make you an account on my server.


Shouldn't be needed. I'll be sure to check out how it works before uploading it anyway, and I might as well figure it out when it's complete, not partial.

The % mark is still not there, but I presume that you're waiting to do that at the same time as the comments and other ratings...
rvec
the % thing was already done, but I forgot to update the version on the website.
ocalhoun
so, how's it going?
rvec
sorry for taking so long, but the weather was just too good. It's raining now and I'm going on vacation in a week, so I'll try to get it done this week,

Edit: as you might have guessed it didn't work out. My internet and server went down just before I went on vacation (the server network card destroyed 2 ports of our switch and one of our modem somehow). I'll try to get my server back up and was planning on using the last half week of my vacation for projects like this (I have too many Embarassed )
ocalhoun
...

Just checking up...
rvec
My server crashed and thx to a new modem I can't access it. I've also had quite a lot to do, so haven't been as active on frihost as normally (still enough time to make a couple of posts from work though).

I am now thinking about getting a virtual server, and putting all my files there.

edit: I still haven't gotten to this. If you got anyone with drupal experience I can send you the source of what I got now (even a mercurial repository with comments). I'll still try to get it done, but some stuff is getting in the way.
rvec
I've had a small personal problem which has the upside that I've got loads of free time now. I've already gotten my server and most important things back up, so now I'm getting started on this again. The URL and users are still the same, I still have my mercurial repositories and they are back online, so if you want to take a look at the code I can make you a login there.

I'll send you updates when I got new stuff working again. Sorry again for taking so long.
ocalhoun
rvec wrote:

I'll send you updates when I got new stuff working again. Sorry again for taking so long.

I'm just glad to see progress being made again! I was getting worried.
Related topics

A php project, trying to make sure the right people know.
iTunes on track to sell 1 BILLION songs! Want $10,000?
Over 10,000 inactive members!
Gibson Guitars promises $10,000 to musician, backs out
$20,000 frih$ you will want this!

Tool - 10 000 days
10,000 Joost accounts available for free
Calif. family finds $10,000 in box of crackers
India's main index breaches 10,000 pts since Jan 7
n0obie4life donates 113 FRIH$ out

Finally?
frih$ cash-in to loosen 45 Points limit
Account Details of Frihost.
Ads on the topics
Best place to live in Europe?
Reply to topic    Frihost Forum Index -> Miscellaneous -> Marketplace

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2007 Frihost, forums powered by phpBB.