Find Jobs
Hire Freelancers

write a forum script in PHP (serious bids still needed as of 03/03)

$30-5000 USD

Cancelado
Publicado há aproximadamente 14 anos

$30-5000 USD

Pago na entrega
OOPS, I didn't know that "reposting" the project would cancel it and get rid of all the bids. I just wanted to get it move up in the new projects queue. Please bid on the reposted project here [login to view URL] NOTE TO POTENTIAL BIDDERS - I do not like many of the bids so far on this project, due to high prices and/or suspected inability to get things done. I welcome new serious bids, especially from programmers outside of South Asia. implement a simple forum script using PHP and MySQL with the following features. If you believe that some of these features are too complex, or you think they should be replaced with a similar in spirit but easier to implement version or if you want to initially eliminate them from the spec and consider doing them later on please say so up front. I would like the code to be self-contained and not rely on any major framework that would have to be installed separately. If you do think of using a framework (as opposed to just some modules downloaded from the web and incorporated directly into the code base) discuss it with me first. Note that the project involves only web programming and no web design aspects. It can all look very ugly, as long as the underlying functionality works correctly and the source code is easy for me to understand/adapt. This script will serve as a component in another, larger project rather than as a standalone web-app. Because of this GOOD FUNCTIONAL DECOMPOSITION IS KEY. Forum has "users" specified by unique user id. It should be possible to add a new user just by specifying a unique new name. Anybody can create new users, there are no admin restrictions. A user can login and logout by entering userid in textbox, without password. All users are equal, there are no moderators or admins. CONTINUED IN DELIVERABLES ## Deliverables CONTINUED FROM DESCRIPTION A user may start a new forum thread and become the "thread owner". All users can attempt posting messages in the existing threads. A post/message consists of a short text, without title or formatting. Posts are displayed together with an automatically appended tag. When a user posts a message in a thread that he is not the owner of, the following should happen: - if he is "friend" of the thread owner, the message should be posted with the tag "AUTO APPROVED" - if he is not "friend", his post is displayed in the thread with a tag "POST NOT YET APPROVED". In this case the thread owner has 3 choices - he can approve the post, disapprove or declare the the poster as "friend" and simultaneously approve. After this the post will be displayed with appropriate tag, either "APPROVED", "DISAPPROVED" or "AUTO APPROVED" The "friend" status of the poster vis-a-vis the user who is viewing the thread should be displayed and a link to "unfriend" him should be provided next to his userid. If a user who is not a "friend" has a "not yet approved" or "disapproved" post in a thread, he may not make new posts in that thread during a "cooling off period", such as 2 days. Both the users and the threads can have "profile" associated with them. User can fill out his own profile and the thread owner can fill out his thread's profile. These two kinds of profile are specified in the database schema and as template forms from which the associated pages will be generated. A profile is a set of fields that can be of type: - string / list of words (e.g. name, description), integer (e.g. age) - selection from predefined list of strings (e.g. {male, female, Troy Maclure}). Such field are displayed in a listbox / select box (I don't like dropdowns) - boolean "tag" displayed as a checkbox - boolean "tag" displayed together in a group of other tags inside a listbox / selectbox. Such a listbox would allow us to select multiple lines, and it will visually visually look a lot like the selection from predetermined list field, but the associated values should be stored as boolean for every tag specified. This is introduced to simplify the process of adding and removing tags as well as changing their groupings, whereas the selection from predefined list will be mostly used for lists that don't change over time, such as lists of geographic locations. There are 3 pages related to profile: - the display form (e.g. allowing us to view a user's profile) - the fill-out form (e.g. allowing user to edit his own profile) - the search form. ([login to view URL] us to search user profiles) All three of them should be, for simplicity, generated from a single html template, and the only meaningful difference between them will be that: - textboxes will be readonly in the display form - selection fields and tags from listboxes fields will in display form be rendered as the selected options separated by commas (like "thread contents = stupid, boring") while in fill-out and search pages they will be rendered as a select control / listbox with single or multiple options allowed. E.g. in this case the select box might have entries {great, average, boring, stupid} and the user apparently picked two of these options. Make sure to specify the database column names in the template, perhaps sort of like this: TD Name: /TD TD input=textbox 20 characters wide, field=db_column_name/ /TD so then this template can be used to automatically generate all 3 of the above mentioned pages/forms related to this profile. Allowable kinds of search are: - precise match with OR operator for the selection fields and grouped tag fields (so e.g. searching for {weird, stupid} will match {great, average, boring, stupid} via OR match). - keyword search for string fields using (implied) AND and NOT operators Boolean keyword search should be implemented using MySQL full text search (for which see here [login to view URL] ) using Google-style dialect, e.g. something like this SELECT * FROM articles WHERE MATCH(title, body) AGAINST('+PHP -MySQL' IN BOOLEAN MODE) It should be possible to search on several fields simultaneously, with the implied operator AND between them, just like in all typical searches in database-driven websites. Sort of like searching for a date with description containing word "dracula" but not the word "goth" AND appearance "ugly" or "truly scary". It should be possible to search for user profiles separately, for thread profiles separately and for thread profiles while also taking into account the profiles of their thread owners, sort of like search for all threads with category "hilarious" whose thread owner is of type "newb". In this latter case we basically display the search form for threads and for users on the same page. Search results should be returned in pages of up to N profiles/threads per page. It should be possible to jump between these pages using Next/Prev buttonss and using a number input tetbox, e.g. to go to page 12 Search fields and associated text should be arranged in "lines" in the template. There should be a "reorder lines" page that would allow each user to change the vertical ordering of the field lines for the search form and display form (when viewing people's/threads' profiles), so as to group the fields that he cares about towards the top. This ordering should not affect the display page and the edit page for his own profiles - it is only for the purpose of customizing his search experience with profiles from other people. Mechanically, the changing of ordering should be done on a page which displays a textbox with index next to each "line". The user can input a new index for a line, press ENTER and get that line moved into the new position with indexes of all lines appropriately updated. User should be able to assign a name to the currently filled out search form and store its contents for later use. That way, a user can end up with a list of commonly used searches accessible from his profile to speed up searching. For instance, he might have a "hilarious thread by clueless newb" and "Godwin law thread by the town drunk" search forms prepared and ready to use. Naturally, this would make the most sense when we have profiles and corresponding queries with large number of fields involved. Query contents should be stored as a single reasonably human readable string (for easier debugging and also possibly for sharing of queries between users). When user clicks on the url for one of the stored queries, it is displayed in the search form, allowing him to introduce changes to it before running the search. ## Platform PHP, MySQL
ID do Projeto: 3222964

Sobre o projeto

11 propostas
Projeto remoto
Ativo há 14 anos

Quer ganhar algum dinheiro?

Benefícios de ofertar no Freelancer

Defina seu orçamento e seu prazo
Seja pago pelo seu trabalho
Descreva sua proposta
É grátis para se inscrever e fazer ofertas em trabalhos
11 freelancers estão ofertando em média $430 USD for esse trabalho
Avatar do Usuário
See private message.
$1.700 USD em 14 dias
4,8 (399 avaliações)
7,9
7,9
Avatar do Usuário
See private message.
$301,75 USD em 14 dias
5,0 (261 avaliações)
6,5
6,5
Avatar do Usuário
See private message.
$650,25 USD em 14 dias
5,0 (159 avaliações)
6,4
6,4
Avatar do Usuário
See private message.
$510 USD em 14 dias
4,8 (107 avaliações)
5,6
5,6
Avatar do Usuário
See private message.
$102 USD em 14 dias
4,5 (47 avaliações)
5,0
5,0
Avatar do Usuário
See private message.
$211,65 USD em 14 dias
3,3 (11 avaliações)
2,6
2,6
Avatar do Usuário
See private message.
$59,50 USD em 14 dias
5,0 (3 avaliações)
0,5
0,5
Avatar do Usuário
See private message.
$127,50 USD em 14 dias
0,0 (1 avaliação)
0,0
0,0
Avatar do Usuário
See private message.
$42,50 USD em 14 dias
0,0 (0 avaliações)
0,0
0,0
Avatar do Usuário
See private message.
$170 USD em 14 dias
0,0 (0 avaliações)
0,0
0,0
Avatar do Usuário
See private message.
$850 USD em 14 dias
0,0 (1 avaliação)
0,0
0,0

Sobre o cliente

Bandeira do(a) UNITED STATES
Stoughton, United States
5,0
26
Membro desde dez. 19, 2003

Verificação do Cliente

Obrigado! Te enviamos um link por e-mail para que você possa reivindicar seu crédito gratuito.
Algo deu errado ao enviar seu e-mail. Por favor, tente novamente.
Usuários Registrados Total de Trabalhos Publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Carregando pré-visualização
Permissão concedida para Geolocalização.
Sua sessão expirou e você foi desconectado. Por favor, faça login novamente.