Creajeu V1

90%
Projet en cours / 3 tâches
24
votes
Voter

L'ambition de creajeu est de monter une véritable communauté de créateurs de jeux web amateurs*.

Pour cela, 3 axes sont développés :

  • l'aspect communautaire, via des profils, blogs, commentaires... de l'échange entre créateurs
  • l'aspect projet, via la présentation de projet, son suivi, sa documentation, les événements liés...
  • l'aspect technique & savoirs, via des outils pour travailler efficacement sur son jeu : SQL Designer, code snippets...

le site est codé avec symfony 1.2, si vous voulez vous joindre au projet, n'hésitez pas à nous contacter sur le forum de creajeu : http://www.creajeu.net/forum/index.php

La V1 couvre principalement le profil et un peu les projets. La priorité du développement est :

  1. corriger les bugs
  2. finir une fonctionnalité
  3. finir un module avant d'en commencer un nouveau

La v1 est disponible depuis ce samedi 21 mars 2009. Joyeux printemps :)

A bientôt !

* = les professionnels ne seront pas pour autant exclus, que le projet soit commercial ou pas, peu importe : on veut que les gens se rapprochent

Avancement du projet

Les tâches

le profil membre

90%

Le profil est une pièce angulaire de l'aspect communautaire :

  • on pourra s'y présenter
  • chercher et trouver des membres
  • se localiser géographiquement et apparaitre sur la map des membres
  • commenter les profils des autres membres

ici ne sont listées que les choses qui restent à faire ou faites depuis l'utilisation de drafts.

la plupart des fonctions sont déjà codées dans leurs grandes lignes. c'est donc plus avancé que ça, il faut y croire :)

le choix de faire l'une ou l'autre tâche dépend de :

  1. sa priorité, mais pas seulement :
  2. son impact global sur le dev du module
  3. sa facilité de réalisation
  4. si en faisant cette tâche on clot une partie fonctionnelle du module

 priorités pour fin octobre :

  1. finir la gestion de compte : mail et mot de passe done
  2. pour cela, mise en place de code couleur selon résultat de l'action done
  3. ajout du flag sur le mail abandonné pour la V1

 

Ouvrir / Fermer la liste des tâches

la navigation / ergonomie

100%

faire tout ça plus ou moins dans l'ordre :

  1. XXX créer partial avec les liens sous forme de liste : profil / avatar /description / tags / email / password
  2. XXX créer style pour affichage horizontal de base de ce partial
  3. XXX associer style au profil dans view.yml
  4. XXX nettoyer le menu vertical gauche : virer les liens devenus inutiles pour le profil
  5. XXX gérer action en cours =  pas de lien dans le menu, seulement du texte
  6. XXX gérer style action en cours = autre couleur et taille adaptée

 


navigation vers autres profils via les mots clés

100%

que dire de plus ?

le module est transversal, on pourra donc l'intégrer pour la suite en 30 minutes chrono.

il reste les pages génériques de visu des catégories & tags.

la gestion des catégories et objets est codée, y compris une page pour tester qu'un objet est à priori taggable :)


chercher un profil

100%

/to do :

  1. recherche par nom

/done :

  1. recherche via les tags
  2. recherche via le pays

commentaires

80%

/sur le profil :

  1. étudier le plugin de commentaires
  2. l'installer

/pour l'admin :

  1. installer l'admin des comm. du profil
  2. créer des droits pour l'utiliser
  3. configurer le bazar

page avatar

100%

/navigation :

  1. code couleur selon résultat action, réaffichage des données

/resize : abandonné pour la V1

  1. étudier et installer le plugin de redimensionnement d'images
  2. modifier la DB : ajouter un champ pour le mini avatar
  3. créer une méthode de resize d'image et l'utiliser

/suppression d'avatar : done

  1. élément de formulaire pour supprimer l'avatar
  2. méthode pour faire ça
  3. formulaire/validation

bonus : abandonné pour la V1

  1. étudier le plugin de validation d'images, éventuellement le remplacer

page mail

100%

/refactoring en premier :

  1. XXX valider correctement le form dans la classe de formulaire
  2. XXX enregistrer dans le save() de cette même classe

( pour cela, cf la tâche "page password", c'est très similaire )

/model :

  1. ajout flag visibilité mail => non, mail jamais visible pour la V1
  2. régénérer model

/form :

  1. gérer flag
  2. ajout couleur rouge/verte pour résultat de l'action
  3. vérifier validation du mail (unicité...)

/affichage profil :

  1. tenir compte du flag sur le mail

page password

100%

/form :

  1. afficher code couleur rouge/vert résultat action

pour cela :

  1. dans action, créer un attribut flash lors de la soumission du form
  2. cf la doc : ch 6 / flash attribute
  3. si form OK : style = FormMsgSuccess, dans les tons verts
  4. si form erreur : style = FormMsgError, dans les tons rouges & liste des messages d'erreur

refactoring en cours :

  1. XXX ajouter validateur au password : new sfValidatorCallback(array('callback' => array($this, 'checkPassword'))
  2. XXX écrire la méthode checkPassword() : acceder au user de session & comparer les passwords hashés

voir le tuto : http://www.symfony-project.org/blog/2008/09/05/call-the-expert-how-to-implement-a-conditional-validator


voir un profil correctement

100%

à faire :

  1. XXX afficher la date de naissance correctement
  2. XXX cacher la date de naissance selon le flag de visibilité
  3. XXX calculer l'âge approximatif et l'afficher
  4. XXX afficher correctement le descriptif
  5. XXXafficher le pays en toutes lettres
  6. XXX afficher l'avatar
  7. XXX afficher les mots clés avec des liens (cf tâche liée)
  8. afficher présentation RTE correctement = style CSS pour la V2

modération du profil

0%

/profil :

  1. ajouter les liens de signalement

/admin :

  1. modéliser le signalement générique
  2. coder les classes et les formulaires
  3. configurer ça pour le profil

page description

95%

/à faire :

  1. installer un calendrier pour le choix dans la date
  2. améliorer le tinyMCE, la barre en haut et des options valables

/validation form :

  1. affichage erreur / OK avec code couleur  rouge / vert
  2. réafficher les données sous forme "pleine page" vs formulaire

lier la ville + pays à google map (Abandonnée)

0%

abandonné pour la V1. on le garde pour la V2 :)

  1. lire la doc du plugin et décider de sa pertinence
  2. obtenir une clé googlemap
  3. installer le plugin
  4. le faire fonctionner
  5. créer une page MAP pour voir tout ce beau monde
  6. lier chaque personne sur la carte à son profil
 

la messagerie (Abandonnée)

26%

indispensable pour communiquer de manière privée entre membres, elle l'est encore plus pour une simple raison : il n'y en a pas dans le forum actuel :P

Ouvrir / Fermer la liste des tâches

contacts

0%

/contacts :

  1. les contacts sont listés par ordre alphabétique du pseudo, avec leur mini avatar
  2. chaque contact se présente avec des liens : supprimer (enlever de la liste des contacts), écrire (écrire un message, le destinataire est alors rempli directement) et un lien sur l'image et le pseudo (voir le profil du membre)
  3. un formulaire permettra de chercher et d'ajouter des contacts
  4. le profil de chaque membre présentera un lien "ajouter aux contacts"

/indésirables :

  1. toutes les régles sont similaires à celles des contacts
  2. une seule exception : on n'aura pas de lien "ajouter aux indésirables" dans le profil de chaque membre
  3. à la réception d'un message, si l'envoyeur n'est pas un contact, un lien "ajouter aux indésirables" sera visible à coté du pseudo
  4. les courriers émis par des indésirables apparaitront dans le dossier "Indésirables"

Les contacts et les indésirables sont exclusifs : un membre ne peut pas inscrire quelqu'un en contacts et en indésirables en même temps.


création du model

40%

/modélisation :

  1. XXX lister les fonctionnalités pour la V1 : écrire / dossiers / contacts
  2. X lister les fonctionnalités de modération / signalement
  3. XX créer les tables en DB modélisation en cours

/génération model :

  1. XXX configurer le schéma pour gérer le package messagerie
  2. XXX générer le model

dossiers

20%

/dossiers :

  1. les dossiers sont de 4 types : boîte de réception, indésirables, archives, corbeille
  2. on arrive sur le dossier boîte de réception par défaut
  3. chaque dossier est une liste de messages (émetteur / titre / date d'envoi ) triée du plus récent au plus ancien par défaut
  4. un tri est possible selon les colonnes
  5. les messages non lus ont un style propre, genre en gras
  6. en cliquant sur une ligne, on ouvre le message
  7. des actions sont possibles, via une case à cocher devant chaque ligne pour choisir et des boutons d'action sous la liste (archiver, supprimer)
  8. éventuellement, des liens vers des actions peuvent exister sur chaque ligne (archiver, supprimer, signaler)

/boîte de réception :

  1. liste de tous les messages reçus, sauf ceux envoyés par des indésirables
  2. clic sur lien = lecture
  3. actions par ligne : répondre, archiver, supprimer
  4. actions globales : archiver, supprimer
  5. action sur message ouvert : archiver, supprimer, répondre

/indésirables :

  1. liste de tous les messages envoyés par des indésirables
  2. clic sur lien = lecture
  3. actions par ligne : archiver, supprimer, répondre
  4. actions globales : archiver, supprimer
  5. action sur message ouvert : archiver, supprimer, répondre

/archives :

  1. liste de tous les messages archivés
  2. clic sur lien = lecture
  3. actions par ligne : supprimer, répondre
  4. action sur message ouvert : supprimer, répondre

/corbeille :

  1. liste de tous les messages supprimés
  2. clic sur lien = lecture
  3. actions par ligne : archiver, supprimer (définitivement), répondre
  4. actions globales : archiver, supprimer (définitivement)
  5. action sur message ouvert : archiver, supprimer (définitivement), répondre

 TO DO : créer un tableau pour les états des différents flags, l'impact des actions selon le dossier d'origine : XXX tableau statique créé


écrire

70%

/écrire : OK

  1. XXX un message comporte un destinataire, un titre et un contenu, tous obligatoires
  2. XXX si on clique sur le bouton "envoyer", le message est envoyé au destinataire et enregistré dans les messages envoyés
  3. XXX si on clique sur le bouton "brouillon", le message n'est pas envoyé et il est enregistré dans les brouillons
  4. XXX en cas d'erreur, le formulaire est réaffiché avec les détails
  5. XXX pour le brouillon, seul le titre est obligatoire

/messages envoyés :

  1. XXX les messages envoyés sont listés du plus récent au plus ancien
  2. en cliquant sur le lien, on peut lire tous les détails : titre, destinataire, message, date/heure d'envoi
  3. X la liste propose toutes les infos sauf le contenu du message

/brouillons :

  1. XXX les brouillons sont listés du plus récent au plus ancien
  2. ils sont limités à N = 10 brouillons maximum (à voir...)
  3. en cliquant sur le lien d'un brouillon, on peut lire tous les détails : titre, destinataire, message, date/heure de création
  4. XXX la liste propose toutes les infos sauf le contenu du message
  5. XXX si une information est manquante, elle apparait dans la liste avec le texte "(vide)"
  6. lorsque l'on voit le détail d'un message, il apparait en édition
  7. les actions possibles sont : "brouillon", pour l'enregistrer à nouveau et "envoyer"
  8. lorsqu'il est envoyé, le message disparait de la liste des brouillons et se retrouve dans la liste des éléments envoyés

signalement / modération

0%
  1. créer lien signalement de message
  2. créer interface d'admin pour modérer
  3. créer système pour sanctionner les abus
 

La présentation de projet (Abandonnée)

13%

Présentation

Premier lot non développeur consacré aux projets de jeux, la présentation de projet.

ABANDONNE pour la V1 !

Elle servira à :

  • décrire son projet
  • présenter des screenshots
  • fédérer une équipe autour de ce projet

Specs list :

  • Milestones
  • Ticket Tracking
  • Comment project
  • Tenir un historique de l'avancement du projet
  • ToDo List / RoadMap ( qui montrera les milestones et les tickets ainsi que leurs états [Traités/En cours/A faire]
  • Chat
  • Subversion Repository / Subversion Browser
  • File management
  • Code Documentation
  • Galerie ( DeviantArt-Like ? xD )
  • Conférence
  • Template Website + Blog

Le but à terme est d'aboutir à une gestion de projet, beaucoup plus intégrée à des outils techniques et utilisant des "assistants".

Ouvrir / Fermer la liste des tâches

modéliser

25%

/modéliser :

  1. multi utilisateurs sur un projet
  2. multi admin sur un projet
  3. candidatures sur un projet : ouvertes ou non, à gérer ( vote des admins ? de tous ? consensus :) )
  4. projet privé ou public
  5. pages de description, de présentation, privées ou publiques
  6. blog ? voir avec le module blog à venir ...
  7. captures d'écran

/model

  1. créer les tables en DB
  2. générer le schéma
  3. configurer le model pour avoir un package "project"
  4. générer le model

les candidatures

0%

/vocabulaire :

  1. chaque membre d'un projet est appelé membre projet
  2. chaque personne disposant des droits pour gérer les candidatures d'un projet est appelé admin candidatures

/déroulement pour les candidatures

  1. un membre pourra être candidat à un projet. pour cela, il devra en faire la demande, de préférence argumentée, via un message spécifique. il ne peut y avoir qu'une seule demande en cours pour un même candidat sur un même projet.
  2. s'il est retenu, il deviendra membre projet
  3. la décision se fera au consensus, dans l'espace du projet, par les membres projet actuels
  4. chaque membre projet pourra donner son avis sur la candidature, via un système de commentaires liés à la candidature. ces commentaires ne sont visibles que par les membres projet.
  5. un admin candidatures pourra annoncer la décision au candidat. cette décision devra être argumentée
  6. une fois la décision prise, la candidature est close
  7. lors d'un refus, un admin candidatures pourra suspendre la possibilité d'être candidat pour le membre candidat pour 1 à N semaines ( N = 4 par exemple), ceci afin d'éviter un harcélement et pour que le candidat puisse travailler de son coté

 /demandes de recrutement

  1. un projet peut être ouvert ou non aux candidatures
  2. si les candidatures sont fermées (et même si elles sont ouvertes), un admin candidatures peut envoyer une demande de recrutement à un membre disponible hors projet
  3. chaque membre peut régler un statut pour les demandes de recrutement, en indiquant s'il est disponible ou non pour ces demandes. cela n'influe pas sur les candidatures venant du membre. c'est fait pour éviter les demandes de recrutement intempestives.

 /annonces : demande de recrutement (pour info & ne pas oublier)

  1. pour passer une annonce de ce type, le projet doit être ouvert aux candidatures
  2. si le projet est fermé aux candidatures après le passage d'une annonce, cette annonce sera marquée "plus d'actualité car le projet n'est pas ouvert aux candidatures", afin d'éviter les quiproquos
  3. les annonces de recrutement seront gérées au sein du module annonce