Find Jobs
Hire Freelancers

CakePHP - add plugin to NoseRub

$30-5000 USD

Cerrado
Publicado hace alrededor de 16 años

$30-5000 USD

Pagado a la entrega
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.
ID del proyecto: 3844746

Información sobre el proyecto

Proyecto remoto
Activo hace 16 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

Sobre este cliente

Bandera de UNITED KINGDOM
United Kingdom
0,0
0
Miembro desde jun 27, 2002

Verificación del cliente

Otros trabajos de este cliente

CakePHP e-learning website
$100-500 USD
¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos 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)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.