Please enable JavaScript.
Coggle requires JavaScript to display documents.
Meet & Travel (Le site sera composé de bons plans (Les bons plans…
Meet & Travel
Le site sera composé de bons plans
Les utilisateurs pourront créer des bons plans. Les admins pourront les modifier et les supprimer (grâce à un bouton Signaler ce bon plan pour les users)
Création d'un controller "bon_plans" avec un crud.
Model "bon_plans" - > Belongs_to user
Les admins pourront modérer les bons plans (créer, éditer, supprimer)
A voir comment fonctionne l'Admin (Anais, option de le relier au model User)
Les bons plans seront composé d'un titre, d'une métadonnée , d'une description, d'une adresse et de photos.
Migration : title:string , métadonnée :string, description:text, adresse :?, picture:activestorage amazonS3
has_many :comments
has_many :likes
belongs_to :user
Option de recherche : lieu, catégorie de bon plan (restauration, activité, hébergement, sortie culturelle)
-> intégrer des tags quand on crée un bon plan et définir la recherche en fonction de ces tags dans la db
Les bons plans auront des catégories, des commentaires et des likes => 3 tables à créer
Table Comments
t.text :body
belongs_to :user
belongs_to :bon_plan
Table Likes
t.boolean :like
belongs_to :user
belongs_to :bon_plan
Table Categories
à voir comment on la construit :check:
Le site sera composé d'utilisateurs
Ils pourront s'inscrire, s'authentifier, éditer leurs profil (nom, prénom, pseudo, âge, localisation, brève description, photo de profil), supprimer leurs profil
Controller User pas nécessaire -> Devise
Model : Has_many bon_plans
:check:
Il pourra s'authentifier avec Facebook (OmniAuth) . FAIT IL RESTE A RECUP NOM PRENOM PHOTO DE PROFIL
Eventuel exemple de repo
:check:
Les utilisateurs pourront s'envoyer des messages privés
Tuto :
Système de message Rails
Table Conversations
t.integer :sender_id, t.integer :recipient_id
belongs_to :sender, :foreign_key => :sender_id, class_name 'User
belongs_to :recipient, :foreign_key => :recipient_id, class_name 'User'
Table Messages
t.text :body
t.references :conversation, index: true
t.references :user, index: true
t.boolean :read, :default => false
Les utilisateurs du site pourront se géolocaliser
Deux options
Géolocalisation par périmètre : gem geocoder
Récupération de la latitude + longitude de l'utilisateur, puis travaille avec la
gem
Décryptage
Autre source
Pourquoi pas faire ça pour les bons plans aussi
Possibilité leafleet et google maps : à choisir
Géolocalisation en temps réel: ActiveCable, système de tchat
-> Permet à une action de se refléter sur deux écrans en même temps.
Evidemment :
Jojo
Les utilisateurs pourront créer des événements (Feature en plus, à réfléchir ?)
Peut -être faire des views en anglais et en français avec un onclick pour changer (feature en plus?)