Find Jobs
Hire Freelancers

CakePHP - add plugin to NoseRub

$30-5000 USD

Κλειστή
Αναρτήθηκε περίπου 16 χρόνια πριν

$30-5000 USD

Πληρωμή κατά την παράδοση
Overview - CakePHP website ??" extend Noserub ([login to view URL]) application by adding a plugin with simple e-learning functionality. Requirement - to write a plugin which extends Noserub (version 0.6a or later) to allow for Create / Read / Update / Delete of new e-learning games ## Deliverables Overview - CakePHP website ??" extend Noserub ([login to view URL]) application by adding a plugin with simple e-learning functionality. Background - 4 years ago, I helped a friend who is a teacher by writing a small e-learning website which he could use with 150 students at his school. This has grown organically, and several other schools are using it. To enhace usage of the site, we want to offer children the opportunity to create their own e-learning activities. I am impressed by Noserub, and the way they integrate different types of social networking applications. Also, I like the way the logins are handled, and the flexibility of using other login credentials (openid etc.) Requirement - to write a plugin which extends Noserub (version 0.6a or later) to allow for Create / Read / Update / Delete of new game activities for the following three groups of users: 1) Anonymous user: - /games/add ??" page where they can add up to 10 questions (text format, up to 255 characters), and corresponding answers (text format, up to 255 characters). They can title the game, and select some tags (e.g. history, english, science, fun etc.) - all input needs to be filtered against cross-site scripting, sql injection etc. - input also needs to be filtered against profanity (perhaps using an API like webpurify ([login to view URL]) - when the input has been checked, the game is added to the database, and displays a URL to play the game (/games/101345764/) 2) Logged in user: - can do everything an anonymous user can do, but can also directly update their Facebook or Twitter feed with the urls of the games they've created, and challenge their friends to play (this is not a requirement for a facebook application). 3) Logged in administrator: - can view/edit/ all games - can un-suspend a game All users: - game URL should display the questions, and give a text box for answer (this may be extended in the future to make it more interactive). - when they click “mark this game??, answers are checked against the database (strict matching) to give a score. If they are logged in, this is recorded against their profile. - when going to a game URL (/games/101345764/), should see a link for “suspend this game??. We are taking the cautious approach of suspending, and then re-allowing, rather than set a “notify?? flag. Principles Security essentials: - The site may store some limited personal information about users under the age of 18 (name, email address), and also some record of their educational progress ??" answers to questions etc. With current scrutiny over loss of personal data, this site must be reasonably secure (as an aid to marketing). - Minimises XSS (cross-site scripting) by escaping all HTML and SQL characters in input - Uses sessions, not cookies. - Only requires user log-off to terminate session (i.e. can’t guarantee that browser will be closed. May be used in school computer labs ??" want to minimise students editing their friends’ accounts for fun). - Will run under SSL. - Not vulnerable to user spoofing ??" i.e. if logged on a student 1001, can’t change URL from [login to view URL] to [login to view URL] and get results for the other user. Interface essentials: - It needs to be functional, rather than beautiful. CakePHP's scaffolding should not be used for the final product. - Should validate as (at least) XHTML 1.0 transitional, and CSS 2.0. - Lightest page weight possible (i.e. can scale to 1,000,000 page views / month without racking up the bandwidth). - Unobtrusive Javascript ??" i.e. could still function with Javascript turned off. Lack of Javascript should degrade nicely (i.e. shouldn’t solely rely on AJAX etc.) - Pagination, which is configurable as an option for the user (e.g. when the administrator is viewing the different games / users, should be able to quickly navigate through them). Interface nice to have: - Scriptaculous AJAX ??" type-ahead for looking up e.g. student names - AJAX drag and drop sorting like the sort found in this WordPress pluging would be great: [login to view URL] - Style sheet which will work on cellphone-sized screen. - Javascript client-side validation Code essentials: - Should degrade with useful error messages - Should e.g. check for existence of all files, plugins, sql results before including them / relying on them. - Lots of explanatory notes ??" a large part of the project is documenting it so that I would be able to make small changes. Code nice to have: - phpDocumentor tag blocks ([login to view URL]) ??" like in lines 18-27 of /app/config/[login to view URL] in 1.2 beta. - Support for internationalisation (i18n) Database essentials: - MySQL, with ISAM tables. - Normalised, with consistent table and column naming conventions (this should not be a problem with CakePHP) - All tables should have created and modified columns (for CakePHP automatic updates). Database nice to have: - Ideally, tables would have a LastModifiedBy column, which associates the user ID. - Has ID columns which will handle a very large number of users (100,000 users, potentially answering 2,000 questions) - Relational hierarchy enforced in code (i.e. when deleting a student, should delete the associated answers for that student) - Database should use a deleted or hidden Boolean value for records ??" i.e. no data is actually deleted, just marked as so. This has a couple of benefits ??" 1) the database account can run without permission to delete records, and 2) data retention. Use Modified Preorder Tree Traversal for storing hierarchichal data ([login to view URL]) ??" data is highly hierarchical, but will be selected much more often than added/deleted/modified. - Andy Dawson at has a fully-featured CakePHP implementation of MPTT ([login to view URL]). Code for inspiration - Cross-site scripting prevention - PHP Input filter - [login to view URL] - Javascript form validation: - [login to view URL]~sbpoley/webmatters/[login to view URL] Environment - CakePHP (Beta: 1.2.0.6311 or later) - Noserub (0.6alpha or later) - Will run on Dreamhost shared web server ([login to view URL]) running Mysql5, PHP5 Acceptance testing - this will be quite a short project, but I would like to (at least) test halfway through the project, or more regularly if you want some input from me. Deliverables - An archive file of the code containing a CakePHP plugin which can be dropped directly into a noserub installation. (A separate .sql file to add / modify database tables is acceptable) Communication - I hope the specification is clear, but would like you to check in with me regularly throughout the project so that any change in direction is agreed to by both sides. I live in England, and currently we're on British Summer Time (GMT+1), and check email frequently between 07:00 and 22:00 most days. Project timelines - Please estimate the time it will take you to generate a working version 1, and indicate whether this is a firm cost for the project, or based on a certain number of hours (time and materials basis). - Please let me know if you're working on other projects at the same time so that we can come to a realistic timescale which will be met. - The requirement is current, and I am now ready to work with a programmer / team to move this forward quickly. Further work - This will be the first site I have had developed remotely. I have a couple of other sites to rewrite or develop from scratch, and am looking to find a programmer / team I can work with to move these all forward.
Ταυτότητα εργασίας: 3844746

Σχετικά με την εργασία

Απομακρυσμένη Εργασία
Ενεργός/ή 16 χρόνια πριν

Ψάχνεις τρόπο για να κερδίσεις μερικά χρήματα;

Πλεονεκτήματα πλειοδοσίας στο Freelancer

Καθόρισε τον προϋπολογισμό σου και το χρονοδιάγραμμα
Πληρώσου για τη δουλειά σου
Περίγραψε την πρόταση σου
Η εγγραφή και η πλειοδοσία σε εργασίες είναι δωρεάν

Σχετικά με τον πελάτη

Σημαία της UNITED KINGDOM
United Kingdom
0,0
0
Μέλος από Ιουν 27, 2002

Επαλήθευση Πελάτη

Άλλες δουλειές από αυτόν τον πελάτη

CakePHP e-learning website
$100-500 USD
Ευχαριστούμε! Σου έχουμε στείλει ένα email με ένα σύνδεσμο για να διεκδικήσεις τη δωρεάν πίστωση σου.
Κάτι πήγε στραβά κατά την προσπάθεια αποστολής του email σου. Παρακαλούμε δοκίμασε ξανά.
Εγγεγραμμένοι Χρήστες Συνολικές Αναρτημένες Δουλειές
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Φόρτωση προεπισκόπησης
Δόθηκε πρόσβαση για Geolocation.
Η σύνδεση σου έχει λήξει και τώρα έχεις αποσυνδεθεί. Παρακαλούμε συνδέσου ξανά.