Skip to content

Matteo-Grellier/Projet_Forum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📑 Projet_Forum

Ce projet consiste en la création d'un forum en ligne qui reprend les caractéristiques d'un forum classique : la publication de posts par des utilisateurs, like ou dislike de posts, pouvoir s'inscrire/se connecter, une multitude de catégories, la création de topics etc...

📝 Consignes

L'utilisateur non connecté pourra :

  • Lire des sujets, posts, commentaires

L'utilisateur connecté devra avoir la possibilité de :

  • Créer des sujets (liés à une catégorie)

  • Réagir aux posts du sujet (likes, dislikes, commentaires)

Un système de filtrage des sujets est mis en place :

  • Par catégorie

  • Les sujets que l'utilisateur aura liké ou posté

Fonctionnalités attendues

  • L'utilisateur peut s'inscrire et se connecter

  • Les mots de passe seront hashés

  • Une session utilisateur sera mise en place en utilisant un cookie avec un temps d'expiration

Contraintes

  • Serveur web en Golang

  • Une URL par page

  • Base de donnée gérée & administrée avec SQLite

  • Les packages autorisés :

    • Packages standards
    • bcrypt (mots de passe sécurisés)
    • sqlite3
    • uuid (sessions de connexion avec cookies)

👉 Pour commencer

👉 Télécharger Golang: https://golang.org

☝️ Pré-requis

Avant de commencer, nous avons besoin d'installer des packages sur notre 💻 terminal en utilisant la commande suivante go get suivie de :

  • golang.org/x/crypto/bcrypt

  • github.com/google/uuid

  • github.com/mattn/go-sqlite3

📥 Téléchargement

Téléchargeons le projet :

  • Version release 👉 ici

🟢 Lancement

Une fois le projet téléchargé, lançons Visual Studio Code.

Pour le lancement du serveur, mettons-nous à la racine du projet pour pouvoir exécuter le fichier suivant server.go.

Dans le terminal :

🔹 go run server.go

Le bon lancement du serveur se traduira par le message suivant :

img

Ouvrez votre navigateur et rendez-vous sur :

🔸 http://localhost:8080 ou directement ici


👉 ⚠️ Les exécutions de pages ou les erreurs sont répertoriées dans notre 💻 terminal.

img

🔍 Architecture

Le dossier Projet_Forum se découpe en plusieurs sous dossiers :

img

  • BDD : Dossier qui regroupe l'ensemble des fonctions pour les fonctionnalités liées à la base de données. (Ajout d'un post, ajout d'un utilisateur, etc.)

  • Handlers : Dossier qui regroupe l'ensemble des fonctions pour l'affichage des pages du site et les fonctionnalités plus globales. (Création du cookie, vérification des entrées lors de l'inscription, etc.)

  • Templates : Dossier qui regroupe les pages HTML (Hypertext Markup Language).

    • Layouts : Dossier qui regroupe des templates utilisées dans plusieurs pages HTML. (header.html, sidebar.html)
  • Static :

    • CSS : Feuilles de style en cascade.
    • JavaScript : Dossier qui regroupe les scripts.
    • Images : Dossier qui regroupe les images.

🎥 Démonstration

🖥 Réalisation

Front-End :

  • HTML5
  • CSS3
  • JavaScript

Back-end :

  • Go

Base de données :

  • SQLite

⚙️ Version

Liste des versions :

Generic badge

Generic badge

👥 Équipe

Projet réalisé à Nantes Ynov Campus par les apprenants de la promo B1 Informatique 2020/2021

Lien des contributions 👉 ici.


Nantes YNOV Campus - B1 Informatique - 2020/2021