Création d'un réseau social avec le mkframework


-I Préambule
-II Création et initialisation du projet
-III L'authentification
-IV Créons notre menu
-V Partie privée : le profil
-VI Partie privée : votre réseaux de contacts
-VII Partie privée : votre fil
-VIII Partie privée : administrez vos photos
-IX Profil partagé
-X Design/ esthétique
-XI Conclusion


I Préambule

I.A Introduction

Vous avez pu découvrir ce framework lors d'un précédent article:
http://imikado.developpez.com/tutoriels/php/presentation-mkframework/
Ici, nous allons utiliser ce framework pour développer un réseau social.
Pourquoi créer notre propre réseau social ?
1. pour maîtriser nos données, ne pas les laisser dans le cloud
2. parce que l'on est pas toujours d'accord avec certaines politiques des grands acteurs
(changement des préférences, politique de confidentialité...)
3. parce que l'on veut un réseau social plus intimiste (par exemple uniquement pour la famille,
pour sa société...)
4. pour apprendre à utiliser ce framework

I.B Présentation du projet à réaliser

Dans notre réseau social, on pourra:
- créer un compte
- personnaliser son compte (image de profil, informations...)
- Publier/partager des messages
- Créer, gérer des albums photos et les partager
- Ajouter, gérer des groupes d'amis afin de faciliter la partage

I.C Au menu de cet article

Nous apprendrons dans cet article
- A créer un nouveau projet
- Configurer votre connexion à la base de donnée
- Gérer une authentification
- Créer un espace public avec
. un formulaire d'inscription
. un formulaire d'authentification
- Créer son espace privé avec
. un module d'administration de profil
. un module de gestion d'albums photos
. un module de gestion d'amis et groupe d'amis
. Créer un module de publication de message

I.D Avant de commencer, créons notre base de donnée

Nous créerons ici les tables suivantes
Une table Users, Friends, UsersGroup, Groups, Albums, Pictures, Messages, Posts et Share
La table « Users » contiendra l'ensemble des utilisateurs avec leur profil
La table « Friends » contiendra les liens d'amitié entre deux utilisateurs (demande d'ami,
confirmé, refusé)
La table « UsersGroup » permettra d'assigner un utilisateur à plusieurs groupes.
La table « Groups » contiendra les différents groupes de contacts (amis, collègues,famille...).
La table « Pictures » contiendra les photos des albums.
La table « Albums » contiendra les albums de photos.
La table « Posts » contiendra les news que posteront les utilisateurs.
La table « Share » contiendra les partages, avec les clés étrangères, on choisira de partager un album, un post ou autre avec certains groupes définis.

  
CREATE TABLE Users 
(
id INT NULL AUTO_INCREMENT,
mail VARCHAR(50NULL,
login VARCHAR(50NULL,
pass VARCHAR(50NULL,
profilPicture VARCHAR(50NULL,
firstname VARCHAR(50NULL,
lastname VARCHAR(50NULL,
job VARCHAR(50NULL,
status VARCHAR(100NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Friends (
id INT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
user_id2 INT NOT NULL,
state INT NOT NULL,
PRIMARY KEY id (id)
);
CREATE TABLE UsersGroup (
id INT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
group_id INT NOT NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Groups (
id INT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
name VARCHAR(50NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Pictures (
id INT NULL AUTO_INCREMENT,
path VARCHAR(50NULL,
name VARCHAR(50NULL,
album_id INT NOT NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Albums (
id INT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
name VARCHAR(50NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Posts (
id INT NULL AUTO_INCREMENT,
user_id INT NOT NULL,
title VARCHAR(150NULL,
body VARCHAR(250NULL,
date DATE NULL,
time TIME NULL,
state INT NOT NULL,
PRIMARY KEY id (id)
);
CREATE TABLE Share (
id INT NULL AUTO_INCREMENT,
user_id INT NULL,
album_id INT NULL,
post_id INT NULL,
group_id INT NOT NULL,
date DATE NULL,
time TIME NULL,
PRIMARY KEY id (id)
);
    



Lire la suite : II Création et initialisation du projet