Giter Club home page Giter Club logo

collaide's Introduction

#collaide.com

Collaide, apprenons ensemble

Béta version : http://www.collaide.com

Hack collaide: Hack collaide/collaide on Nitrous.IO

Bugs, suggestion

Postez une issue sur github: https://github.com/collaide/collaide/issues/new

##Déscription collaide.com est un site web offrant différents services aux étudiants. Actuellement il est possible de télécharger et mettre à disposition des documents scolaires, acheter et vendre des livres scolaires d'occasion et créer des groupes de travail.

Échange de documents scolaires

C'est actuellement le service le plus utilisé. Il est possible de rechercher, télécharger et mettre des documents scolaires importants. Par exemple, rapport de projet, travail de maturité, de séminaire, dosssier, etc. Pour le moment plus de 100 documents sont mis à disposition.

Vente et achat de livres scolaires

Permet d'acheter et vendre des livres d'occasions. Par la suite, il est prévu de pouvoir poster des annonces pour d'autres domaines. Appartements, échange de service, etc.

Groupes de travails

Tout nouveau service! Il permet à des étudiants de discuter et échanger des fichiers dans un espace privé. C'est le service qui va la plus vite évoluer avec comme premiers objectifs la possibilité de garder un historique des modifications des fichiers, éditer, commenter des fichiers.

Par la suite, il est aussi prévu de pouvoir créer d'autres type de groupe. Groupes publics, présentation d'association d'étudiants, de faculté, etc.

Plus

Vous avez des idées ? des suggestions ? Postez une suggestion ou rejoinez-nous pour coder directement votre idée

Nous-même en avons encore pleins, mais pas le temps de tout faire

##Recherche

Nous recherchons des personnes désirueses de nous aider :

  • traducteur français-anglais -> trouvé
  • traducteur français-allemand -> trouvé
  • traducteur français-italien
  • plusieurs développeurs Web dans les domaines suivant (un seul est c'est déjà cool): HTML/CSS, Javascript, Ruby/RoR
  • une personne responsable de la communication (social marketing, réferencement, écriture de textes, etc)

##Organisation

collaide.com a été développé durant notre temps libre. Le coût des serveurs et autre et payé de notre poche. Si vous voulez nous soutenir finacièrement, contactez-nous

Nous avons séparé le travail en plusieurs modules indépendants l'un de l'autre. Ainsi, chacun peut travailler sur le ou les modules qui lui conviennent sans devoir comprendre l'ensemble du site. Pour l'instant, il y a 5 modules:

  • Documents, gestion de documents scolaires.
  • Annonces, Vendre des livres, en acheter. Par la suite, possibilité de poster des annonces pour d'autres choses
  • Groupes, échanger entre étudiants. Pour l'instant uniquement les groupes de travails sont implémentés, mais d'autres types de groupe viendront par la suite.
  • Utilisateurs, gestion des utilisateurs, messagerie privé et notification
  • Activités, gestion des activités du site. Chaque utilisateur peur configurer quelles activités il veut voir et chaque modèle possède ses propres activités.

##Languages et outils

Pour le versioning:

  • git

Nous utilisons les languages suivant :

  • Ruby
  • Haml/ERB
  • HTML/CSS
  • Coffeescript
  • Saas

Les base de données sont en :

  • postgresql
  • mysql (indexation)

Nous utilisons comme framework :

  • Ruby on Rails
  • Foundation

Liste des gems Ruby les plus importantes :

  • devise
  • ancestry
  • cancan
  • globalize3
  • active-admin
  • i18n
  • i18n-routing

consulter le Gemfile pour une liste complète

Pour les tests, nous utilisons:

  • Rspec
  • cucumber
  • FactoryGirl
  • guard

##Auteurs Yves Baumann et Numa de Montmollin. les auteurs

License Collaide

Copyright (c) 2009-2014 All rights reserved.

  • Fondateur : Yves Baumann
  • Cofondateur : Numa de Montmollin

collaide's People

Contributors

facenord-sud avatar texicitys avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

collaide's Issues

Création d'un gem : Act_as_comment_and_evaluate

Salut

Il nous faudrait créer un gem qui permet de commenter et d'évaluer une entité. Une seule évaluation par personne (rattachée à un commentaire) . Mais plusieurs commentaire autorisé.

Importance

  1. Document
  2. Fichiers
  3. groupe
  4. annonces
  5. mise en ligne

Installation du gem sphinx

Salut boy

J'ai enfin réussi à installer les gems sphinx et mysql2 (grâce à http://blog.mmediasys.com/2011/07/07/installing-mysql-on-windows-7-x64-and-using-ruby-with-it/ )

Mais j'ai ce message lorsque je fais une recherche :

Mysql2::Error in Advertisement/advertisements#search

Showing C:/Users/Yves/Documents/RubymineProjects/collaide/app/views/advertisement/advertisements/index.html.haml where line #9 raised:

Can't connect to MySQL server on '127.0.0.1' (10061)
Extracted source (around line #9):

6: .small-12.columns.large-6
7: =create_link(Advertisement::Advertisement, t('advertisements.index.new_link'), 'expand')
8:
9: -if @advertisement.empty?
10: %p= t 'advertisements.index.no_advertisement'
11: -else
12: .row.hide-for-small
Rails.root: C:/Users/Yves/Documents/RubymineProjects/collaide

Réflexion sur l’accessibilité des documents. Côté entraide, communautaire de Collaide

Salut,

Hier soir après avoir posté sur le sdz, je me suis fait une réflexion sur l'image que l'on voulait donner du site à l'extérieur. L'image idéal, je trouve, est celle d'un service (gratuit) fait par des étudiants entièrement destiner aux étudiants.

Ou est-ce que je veux en venir :
Je pense que dans le nouvelle version, il faudrait que les documents publics soient accessible librement à tous les membres connectés (il faut quand même s'inscrire).
Pourquoi ?
Il existe plusieurs site comme doc-étudiant, obiblio, etc.. On a déjà perdu si l'on désire leur faire concurrence. Pour nous démarqué de ces site qui "se servent du contenu des étudiants pour se faire de l'argent dans leur dos" (c'est ce que je me suis dit quand j'ai vu doc-étudiant), il faut qu'on soit utopiste je pense (comme le site du zéro).
Problème :

  • Les profiteurs pourrons profiter pleinement de tous les documents, sans rien envoyer.
  • moins de doc
  • Ce n'est pas pour rien que doc étudiant, obiblio etc, utilise se système, c'est peut être le seul moyen d'avoir du contenu

Avantage:

  • Les document envoyés sont vraiment envoyé par envie du user (et non par obligation) donc le contenu risque d'être meilleur.
  • l'image du site est améliorée dans le sens ou le site est réellement au service des étudiants (le contenu est à eux, pas à nous !!)

Pourquoi les gens envoie des documents sur Collaide alors qu'il ne sont pas obligé et pas sur un autre site ?
Simplement car on va tout faire pour avoir une communauté d'étudiant dans un esprit d'entraide. (Plusieurs fois j'ai voulu faire un tuto sur le site du zero, simplement car j'avais envie d'aider à mon tour.) Si on arrive a instaurer cette atmosphère, c'est la meilleur possible je pense. De plus on propose d'autres services, donc les gens doivent utiliser notre site (pas uniquement pour ça). Et lorsqu'on partage notre do en privé (avec nos amis, en privé). On peut ensuite aider toute la communauté en 1 clique (rendre le doc public).

On pourrait garder le système de point (pour continuer à motivé et à mettre en avant les gens qui participe plus). Mais ne pas interdire le contenu à ceux qui on pas de point.

Il faut qu'on reflechisse de tout ça. T'en pense quoi ?

Avant la mise en ligne

On met ici les choses qu'on veut encore faire/corriger avant la mise en ligne.

Vérifier qu'il n'y aie plus aucune faille:

  • Utiliser raw avec précaution, toutes les données clients doivent être escape avec h()
  • Vérifier les requêtes sql, ne jamais introduire des variables users.

(j'ai fait une recherche de tous les raw, je te laisse re regarder).

On garde le nom CFile (pas du tout portable (si on veut suivre une certaine logique)), ou on renomme vite en UserFiler ou AppFile ? Car c'est encore vite fait maintenant. Mais plus tard on devra le garder...
Ca ne me dérange pas de le modifier en AppFile.

Pour ce qui est de la table users:

  • Dès qu'on s'inscrit, notre name est automatiquement "name". C'est normal ?
  • A la connexion il faudrait qu'on puisse s'enregistrer avec pseudo ou mail ? Ou juste mail. Je pense perso juste mail, vu qu'on va autoriser que deux personnes aient le même pseudo non ? Vu que name sera juste le nom afficher pour les autres (comme sur FB) et non pas son login.

Pour les doc:

  • Auteurs du document doit pouvoir être blanc. Si il est vide, on l'enregistre vide. A l'affichage, on affiche le name_to_show du membre à la place.
  • Faut qu'on regarde le domaine et les types ensemble. Qu'on finalise ça.
  • Une fois un doc créer, il faut mettre dans l'alert "document créé, il n'est cependant pas encore validé, etc, etc..." Histoire que le mec comprend pourquoi il n'a pas de doc.
  • Parler un peu des points quand même, même si ce n'est plus obligatoire pour télécharger.

File:

  • Chez moi les files ne s'enregistre pas, j'ai sans doute pas le bon path. Je dois le créer ou ? Comme veux-tu gérer ça ? Tous les files seront dans le même dossier sur le dd ou tu sépares les avatars des files ?
  • Par contre tu ne peux pas séparer les files des documents, vu que un file peut aussi être un document.
  • J'ai vu qu'il y a : :rights, :file, :position. Rights c'est pour quoi ? Et position ?
  • Utiliser carrierwaive au lieu de paperclip, d'après ce que j'ai pu lire. Enfin à encore regarder : http://stackoverflow.com/questions/7419731/rails-3-paperclip-vs-carrierwave-vs-dragonfly-vs-attachment-fu
  • Mettre les files dans "upload", pas "download".
  • Est-ce qu'on ne veut pas faire un model Image hérité de File qui enregistre en plus les dimensions de l image et tout ?

email:

  • A faire je pense...

Bref, la version 2 actuelle est encore bien en retard à rapport à celle en ligne:

  • Aucun système de news
  • On ne peut peut pas commenter et évaluer les doc, annonces, etc..
  • On ne reçoit aucun mails
  • On ne parle jamais des points
  • Pas d'aide, de contact, forum
  • Pas de groupe

N'hésite pas à compléter si t'as des trucs..

Le choix des gems de rails

Salut numa !

J'ai regardé un peu pour les gems de rails (pour les commentaires, les ratings, les recherches)..

Le site ruby toolbox est vraiment top, il propose les gems et en fait un classement !

Pour le système de recherche, sphinx n'est de loin pas le meilleur : https://www.ruby-toolbox.com/categories/rails_search

Ils proposent : sunspot en premier : https://github.com/sunspot/sunspot .. C'est peut être mieux, je ne sais pas, je te laisse regarder et me redire.. Il y en a d'autre de proposé avant sphinx.

Pour ce qui est des notes et des commentaires, j'ai n'ai pas trouvé de gems qui fait les deux en même temps. Cependant, pour le rating, sur toolbox, il propose un autre gem qui a l'air top : https://www.ruby-toolbox.com/categories/rails_ratings
Ils proposent : ajaxfull-rating : https://github.com/edgarjs/ajaxful-rating

Pour les commentaires, il y a ça : https://www.ruby-toolbox.com/categories/rails_comments
Ils proposent : Acts as commentable with threading : https://github.com/elight/acts_as_commentable_with_threading. Il y a les commentaires imbriqués, ça à l'air cool !

AUTRE : Pour la pagination il y a aussi le gems : will_paginate: https://github.com/mislav/will_paginate

Il faut regarde ici : https://www.ruby-toolbox.com/#Active_Record_Plugins Il y a plein de catégorie, comme breadcrums, Syntax Highlighting, Rails Permalinks & Slugs (pour les belles urls), Recommendation Engines (pour recommander ce qui pourrait interesser le user), des truc pour les captcha, Spam Detection, Calendars , Geocoding & Maps (https://github.com/alexreisner/geocoder), etc...

Je pense que t'avais deja vu ce site, mais je le trouve vraiment cool et je pense qu'il faut à chaque fois bien regarder quelle gem on prend :)

Reflection sur la géolocalisation

Alors, j'ai regardé un peu, le meilleur gem c'est celui la : https://github.com/alexreisner/geocoder

Je l'ai déjà installé... Je ne peux malheureusement pas le tester avec les adresses ip, car l'adresse localhost ne peut pas être localisée..

Cependant, ce me question sur comment on va faire avec cette géolocalisation. On a quasi à coup sur le pays du user. On a juste qu'a faire ça :

returns Geocoder::Result object

result = request.location

Result contient ensuite ça :
result.latitude - float
result.longitude - float
result.coordinates - array of the above two
result.address - string
result.city - string
result.state - string
result.state_code - string
result.postal_code - string
result.country - string
result.country_code - string

J'ai déjà fait qu'a la validation (donc au save) d'un user, on enregistre la longitude et latitude grace à l'ip (car on a tout avec ça).
Mais est-ce que j'enregistre la location d'une annonce aussi ? Ou celle ci est automatiquement localiser au dernier emplacement du user ? Donc si le user se connect depuis l’étrange, l'annonce devient une annonce du pays dans lequel il s'est connecté en dernier ?
Ou sinon on enregistre le pays de localisation à l'inscription (celui de l'IP)?
Ou sinon on demande juste le pays à l'inscription (en présélectionnant celui de l'IP)?

Bref, plusieurs question... Mais c'est important d'avoir juste le pays du user. Comme ça on montre ensuite que les annonces dans le pays du user (même si il n'est pas connecter, on a son pays grace à l'ip).

Je laisse ça en standby histoire de voir comment faire... Mais le gem est très puissant et peut afficher les annonces à x km du user par exemple...

Erreur avec le livre d'or

Sur Heroku, quand la méthode create de GuestBooksController est appelé, elle génère une exception 'undefined method' pour la méthode validate de la class GuestBook (le model). C'est étrange, la méthode validate est une méthode de base de tous les modèles. De plus, en local, cela marche en mode production et en mode développement...

Et aucune réponse dans google

Test de awesome_nested_set pour les arbres

Salut Numa !

https://github.com/collectiveidea/awesome_nested_set

Je suis tombé là dessus en faisant mes recherches préalable avant le codage du système d'arbre à donnée intervallaire. Ca fait exactement ce que je voulais coder il me semble (avec rgt et lft, etc..)

Je te laisse regarder ? Vu que c'est toi qui à coder tout le système des arbres avec les domaines ? Je te laisse adapté si c'est ce qu'il nous faut. Donc te servir de ce gem.

J'ai deja fait les migrations necessaire à domains.. Mais je n'ose pas toucher ton code dans le model domain..

Incohérence dans le nom des tables

Ah si, je peux un issue, désolé.

Il y a une incohérence (ou je me trompe) avec le nom des tables user. La table s'appelle user. Et les autre membre_quelque_chose.. Pourquoi pas user_quelque_chose ??

Priorité avant la mise en ligne

Salut

On se fait une liste des choses à faire avant la mise en ligne ?

Il faut essayer de rattraper le Collaide actuel (ou presque). Pour ensuite implémenter les addons.

YVES:
Finalisé les annonces de livre (quasi fini)
Insérer le système de MP pour pouvoir contacter le revendeur

Numa:
Finaliser les documents (ajouter du js dans le form, possibilité de plusieur doc, bare de progression pour l'upload?, recherche de base, etc..)
Mettre de l'ordre dans tous les controller, view, helper, etc.. que t'as créé au début et qui ne servent a rien (user/messages, user/comments, etc..). C'est mieux de les créer lorsqu'on les utilises..

Numa et/ou Yves:
Page user (paramètres, mes livres, mes doc, mes doc_telechargé, etc...)
News ou blog
faire et finaliser les pages statiques (accueil, topbar, etc)
Rendre les pages importantes compatibles avec les anciennes.

Mise en ligne !!!!

Ensuite:
Les notifications (très important)
Regarder en détail la recherche
Commencer à se focaliser sur le coté social (groupe, etc...)
A voir...

Augmenter la largeur max du design

Il faut absolument trouver comment augmenter la taille max du design, car niveau visuel ça va changer un peut, donc faut direct pouvoir se fair une idée !

Connexion via Facebook et autre

Rien ne fonctionne... J'ai pourtant bien suivi les instructions..
Quelques liens bien expliqué... Je comprends pas ce qui cloche.. Il ne porpose même pas le lien pour la connexion google alors que j'ai tout paramétré pour pourtant.
https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview
https://github.com/intridea/omniauth
http://www.synbioz.com/blog/integrer_les_reseaux_sociaux_dans_son_application_rails_avec_oauth
http://blogs.burnsidedigital.com/2013/03/rails-3-devise-omniauth-and-google/
https://github.com/zquestz/omniauth-google-oauth2

Voila..

Faire attention au css

Salut !

Il faut que tu faces attention quand tu fais tes modifications css. Il faut que tu les faces dans des class avec des noms uniques.

Car là, tu as fait (dans document.css) span = bold.. Donc sur tout le site maintenant, si on met un span (peu importe la raison), ça met le text en bold... Ce devient vraiment génant quand les tag qu'on met commence à faire n'importe quoi à cause de conflit avec d'autre css...

Il faut que tu encercle par exemple avec un class = document_index. Tu n'as qu'a ensuite faire:

document_index {
span {
// Ton code css ne fera pas chier les autres page ici
}
}

Merci de corriger ça :)
A ploush :)

Utilisation Breadcrumb !

Salut !

Il faut faire attention pour le breadcrumb... Les addbreadcrumb doivent être lié au render de la methode.. Car une methode par exemple update doit rendre le même breadcrumb que edit :)

iL y a un problème avec le premier breadcrumb que j'ajoute dans application_controller, il est traduit une fois sur 2...

Recherche d'un slogan pour Collaide

J'ouvre cette petite discussion pour qu'on mette ici dès qu'on a des idées de direction pour logo, slogan, couleur, etc...

Cette nuit j'ai pensé à un truc tour simple :
Collaide, étudions ensemble !
ou
Collaide, apprenons ensemble !
ou
Collaide, grandissons ensemble !

Voilaaaa :)

Possibilité de faire que la balise meta title et description soit ajoutées automatiquement?

Salut Numa !

C'est possible de faire que la balise meta title, description et keywords soit ajouté sur chaque page de manière automatique ?

Car là je réalise que je fais beaucoup de copier / collé inutile...

Voici ce que je fais actuellement:
Je vais dans chaque vue et j'ajoute :
-content_for :title, t('advertisements.index.meta_title')

(description, je ne le fais pas, mais on devra)
-content_for :description, t('advertisements.index.meta_description')

Voici ce que le script doit faire :
Il va chercher automatiquement la traduction dans
t("#{bundleName}.#{action}.meta_title")
t("#{bundleName}.#{action}.meta_description")

Ou sinon on crée un chemin :
fr:
meta:
advertisements:
index:
title: Meta Title de advertisement
description: Meta desciption
keywords: etc, sale, document
show:
title:
documents:
index:
title:

Et le script va auto chercher pour les traductions... Je vais voir un moment sur le net si je trouve.

title de book peut être nil

Va sur la page annonces sur le serveur de prod.

Dans le logs, tu obtient cette erreur:

Completed 500 Internal Server Error in 421ms

ActionView::Template::Error (undefined method `truncate' for nil:NilClass):
    27:       -#      =sale_book.hits
    28:       #star
    29:     .small-12.columns.large-8
    30:       %h3= link_to sale_book.title.truncate(80, separator: '', omission: '...'),       sale_book
     31:       %h6.ads-subtitle= link_to sale_book.book.title.truncate(80, separator: '', omission: '...'), sale_book
    32:       -#%h6.subheader= t('sale_books.index.subtitle1', book:sale_book.book.title)
    33:       -#%h5.subheader
  app/views/advertisement/sale_books/_sale_book.html.haml:30:in     `_app_views_advertisement_sale_books__sale_book_html_haml___132127889567393    8158_69450360'
  app/views/advertisement/advertisements/index.html.haml:30:in   `_app_views_advertisement_advertisements_index_html_haml__38646810100573567    85_78233000'

Si tu peux jeter un coup d'oeil, ça m'arrenge. Je n'ai pas compris comment un titre pouvait être nul

Création de page statique

Créer les pages statiques.

Pour les pages statiques sont :

  • aide
  • qui somme nous ?
  • a porpos (explique comment le site a été réalisé et pourquoi)
  • contact

dans la haml on peut utiliser le mardown et le mardown peut être écrit dans le fichier de langue. Peut-être pratique pour les pages statiques ? Ou pas.

Joyride ne fonctionne pas, ainsi que validation client (javascript)

Le Javascript ne m'aime pas !! J'ai installer deux truc. Le gem pour la validation des formulaires en javascript, ça ne fonctionne pas (rien ne se passe) pourtant le JS est écrit sur le code source..

J'ai aussi fait un joyride pour le formulaire d'envoie de document, mais ça ne fonctionne pas.

Les notifications

Salut boy,

J'ai vu que t'as commencé les notifications. Juste une petite question. Tu enregistre le texte dans la bdd ou tu enregistre les infos. puis tu génère le texte à l'affichage ? Je pense que la deuxième est meilleur.

JQTree

JQtree fonctionne, mais il a de la peine à s'afficher avec foundation.

Il faudrait effacer tous les style de foundation pour jqtree, tu aurais une idéée comment faire.

Je veux utiliser jqtree pour pouvoir sélectionner plusieurs domaines dans l'envoi de documents. D'après les retours que j'ai eu, la liste à choix multiples n'est pas très conviviale.

Je veux arriver à qqc comme ça : http://mbraak.github.io/jqTree/examples/multiple_select.html

Tout serait simple, sauf cet arbre qui s'affiche mal. Si t'as le temps de jeter un coup d'oeil, moi j'ai passé une heure dessu sans trouver...

J'ia créé une nouvelle branche : jqtree_in_form

Merci et bon week-end!!!

changer les urls pour les dossiers

pour le user:
collaide/fr/user/fichers/:id_folder peut être vide

pour le groupe:

collaide.com/fr/group/:id/fichiers/id_folder peut être vide

2 méthodes pour 2 urls, mais une méthode privé dans le contrôlleur qui fait le truc de base

Nested set ou tree?

Salut,

Pour mon projet d'info, je dois créer un gem qui gère les arborescences de dossier. Je suis en train de me demander ce qui est le mieux :

Gestion en arbre (avec parent_id)
ou gestion intervallaire (avec lft, rgt).

Avantage arbre:
Plus rapide pour ajouter ou supprimer des élèments.
inconvénient:
Doit faire des appels récursifs pour afficher par exemple tous les fichiers d'un dossier (et ses sous dossiers)

Avantage intervallaire:
Affichage des données ultra simple en une seule requête.
inconvénient:
Nécessite de modifier tous les éléments de la table lors d'un ajout ou d'une suppression d’élément (mais pas de récursivité)..

Donc d'après ce qu'on a en dessus. Si l'on a une table qui bougera très peut et qui affichera beaucoup, il faudra impérativement utiliser la représentation intervallaire.
Mais si l'on ne fait que d'insérer et de supprimer des objets en affichant très peu, on doit privilégier la représentation avec parent_id.
http://www.finalclap.com/faq/252-representation-invervallaire

Donc, il ne fait pas de doute, pour notre système de catégorie pour les documents, il faut utiliser la représentation intervallaire (vu qu'on ne changera quasiment jamais la table) mais qu'on aura énormément de SELECT récursif.

Mais pour un système de fichier, ou l'on peut ajouter, supprimer, modifier des fichiers mais aussi les consultés, que vaut-il mieux ?

En écrivant ce post, je penche plutôt vers la représentation intervallaire. Car je pense que la récursivité est une telle catastrophe au niveau performance, que la facilité de modification n'est pas un avantage assez convainquant pour la justifier.
Mais d'un autre côté, il n'y aura pas beaucoup de récursivité vu que généralement on n'affiche que les fichiers et dossier contenu dans le dossier sélectionné (et non pas ses sous dossiers).
La récursivité intervient lorsqu'on veut compté le nombre de fichier dans un groupe, ou lorsqu'on veut afficher tous les fichiers d'un groupe, etc...

PS: Pour Collaide, tu crois que c'est dur de passer à nested set, car c'est vraiment mieux en terme de performance, surtout qu'on à que des SELECT quasi.. On ne modifiera quasi jamais cette table et on devra très souvent faire des requêtes recursives, comme pour afficher tous les documents d'un domaine et de ces sous domaines. Ou pour afficher un domaine de ce type :
Sciences naturelles > Informatique > Programmation > Java
Ce qui est vraiment plus classe pour situer je trouve, ex : un document envoyé aujourd'hui sur collaide : http://www.collaide.com/documents/p1-163-Jeu-de-bataille-navale-en-JAVA.html

medium-grid-x ne fonctionne pas

La class medium de foundation (pour les écrans de taille medium, comme une tablette) ne fonctionne pas. Voir la fichier advertisement/index.html.haml ligne 28.

Bug trouvé dans la gestion des membres.

Je te laisse faire, c'est toi qui codé ça. Voilà le log de l'erreur:

Started GET "/fr/membres/347/annonces" for 109.164.235.82 at 2013-12-21 12:50:22 +0100
Processing by UsersController#advertisements as HTML
Parameters: {"locale"=>"fr", "user_id"=>"347"}
lang set to 'fr'
Rendered users/_menu.html.haml (3.0ms)
Rendered advertisement/sale_books/_sale_book.html.haml (17.4ms)
Rendered users/_layout.html.haml (25.2ms)
Rendered users/advertisements.html.haml within layouts/application (25.7ms)
Completed 500 Internal Server Error in 154ms

ActionView::Template::Error (undefined method `+' for nil:NilClass):
43:       %a.button.small.secondary{'href'=>'#', 'data-reveal-id'=>'buy_book', 'class' => 'button_buy_book', 'id' => "button_buy_book_#{sale_book.id}"}=t('sale_books.index.buy')
44:       =show_link sale_book, t('advertisements.index.show'), 'small secondary'
45:     %hr.show-for-small
46: -if (@parity+=1)%3==0
47:   %hr.hide-for-small
48: =render 'advertisement/sale_books/reveal', sale_book: nil
app/views/advertisement/sale_books/_sale_book.html.haml:46:in `_app_views_advertisement_sale_books__sale_book_html_haml___480240709118187513_61279900'
app/views/users/advertisements.html.haml:15:in `block in    _app_views_users_advertisements_html_haml__515842587653849571_57511580'
app/views/users/_layout.html.haml:7:in `_app_views_users__layout_html_haml__3424287589690091952_64797960'
app/views/users/advertisements.html.haml:4:in `_app_views_users_advertisements_html_haml__515842587653849571_57511580'

Idée pour relier collaide au web des objets

Pour le travail de Bachelor, je pourrais éventuellement le faire en relation avec le web des objets. Je pense qu'une idée possible, serait de développer une application avec REST qui intègre des objets du monde physique.

La classe, serait de pouvoir faire un lien avec collaide. Par exemple, en photographiant le code barre d'un livre avec un smartphone, cela te dit si le livre est vendu sur collaide et ses prix.

Il y aurait plein de possibilités...

Si tu en as une ou plusieurs ?

Migration des données

Migrer toutes les données de l'ancien vers le nouveau. Je me propose aussi, puisque j'ai déjà fait les scripts de migration (en partie)

formulaire pour le tri des documents

Pour l'instant, le formulaire est fait en html pur et ne sert à rien.

J'ai pensé faire deux partie, le champ de text avec recherche instantannée, dès que l'on entre du texte, des résultats s'affichnet an ajax.

L'autre partie pour afficher suivant certains critères(regarder la page index). Les paramètres sont passé par le post. Cela pose-t-il problème au niveau du référencement ? plusieurs contenus pour une url. Pour moi, cela vaut la peine de faire ainsi, c'est beaucoup plus intuitif pour l'utilisateur.

de plus, on peut ajouter des petits boutons vers chaque documents qui permettent partager sur facebook, twitter, etc.

On pourrait aussi faire partager la page sur facebook, par exemple.

Il y a encore l'interface qui n'est pas tout à fait au point, mais qui s'améliore, surtout qui s'adapte gentiment pour les smartphones.

A discuter et volontiers des retours sur encore quoi changer !!!

NB j'ai mis des todos dans les fichiers documents/index et document.rb. Utiliser rubymine pour les trouver facilement

Installation du serveur

Je me propose, il me semble que je suis un peu plus à l'aise avec les systèmes de type unix. Mais si tu veux le faire, c'est volontiers.
On le fait dès que tous le reste est fait ? Ou avant ? pour éviter des surprises de dernières minutes ?

Quelques bugs dans les livres (besoin de ton aide)

Voici quelques bugs

  • Le reveal s'affiche trop bas, j'ai essayé de modifier la variable Foundation, mais ça ne fonctionne pas..
  • Dans la page show, la value de l'input (hidden) pour le user est un tableau avec 1 et ça ne fonctionne pas. Alors que "1" fonctionne.. Je n'arrive pas à géré vu que c'est géré tout seul avec simple form.
  • Peux tu me montrer comment faire (ou faire tout même) la pagination des annonce et un petit module de recherche ? Merci
  • Je n'arrive pas à faire que le float du prix doit être plus grand que 0.

Je mets en dessous si d'autre bug me reviennent.. Je sais que j'en ai oublié.
Une fois ces bugs corrigés, et les MP terminé, j'aurais fini les annonces.

Merci d avance.

document - d'autres améliorations

Salut !

Pour les documents, voici des améliorations à faire :

La plus IMPORTANTE :
Le bouton télécharger doit être présent pour tous les visiteurs (même les non membres). C'est qu'une fois qu'il ont cliquez sur le bouton qu'il doivent être redirigé sur la page de connexion/inscription afin qu'il comprennent pourquoi il ne peuvent pas télécharger. Car actuellement, si un visiteur tombe de google sur une des pages documents, il ne voit pas le bouton télécharger... Résultat : Il se casse du site.

Les documents devant être validé, il faut limiter leurs modifications.

Un document pas encore validé : On autorise sa modification à volonté. (On enregistre juste pas un nouveau slug pour chaque modification).

Un document refusé, dès qu'il est modifié, on le remet en attente de validation.

Un document accepté, on a deux possibilités :

  • on autorise toutes les modifications, mais si il modifie quelque chose de classé comme important (tel que le titre, la description, le fichier), on affiche un message demandant si il est sur de vouloir modifier, car le fichier retournera en attente de validation.
  • on autorise que de modifier les choses qui ne sont pas classé comme important (à que établissement il est lié, que sont ses domaines, degré scolaire, etc..)..

Pour nous démarquer des autres sites de partage de document je propose cette chose : Lorsque l'on envoie le ou les fichier(s) du document. On peut l'envoyer dans sa forme de publication (pdf) ou/et dans sa forme d'origine (.tex, .docx, etc...). Comme ça sa permet de mettre un pdf + son .tex associé.

Voilà, c'est des idées que me sont venue grace aux questions des membres du sdz : http://fr.openclassrooms.com/forum/sujet/site-web-collaide-apprenons-ensemble

Mot clés pour la recherche d'un slogan

Une bonne méthode pour rechercher un slogan est de donner tous le mots-clés qui nous passent par la tête, d'en choisir 4-5 et de construire une phrase à parti de ceux-là.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.