CampusHub Africa est le réseau que j'aurais aimé avoir pour mes études. Une plateforme pour les étudiants d'Afrique francophone qui centralise bourses, stages et logements. On peut chatter en direct, poser des questions et trouver des étudiants de sa filière. Projet développé avec Next.js, Node.js et PostgreSQL.
# CampusHub Africa
Réseau social académique connectant les étudiants d'Afrique francophone. La plateforme centralise les opportunités — bourses d'études, offres de stage, logement étudiant, conseils d'orientation — et facilite la connexion entre étudiants via un fil d'actualité, une messagerie instantanée, un annuaire par école/pays, et un espace de partage de ressources pédagogiques.
**Objectif :** faciliter la mobilité et la réussite académique des étudiants d'Afrique francophone.
**Stack :** Next.js (TypeScript) · Node.js / Express (TypeScript) · PostgreSQL · Socket.io
## Fonctionnalités
- **Authentification** — inscription/connexion sécurisée (JWT, mots de passe hashés)
- **Fil d'actualité** — publications catégorisées (bourses, stages, logement, général), likes, commentaires
- **Messagerie temps réel** — conversations privées instantanées via Socket.io, indicateurs de messages non lus
- **Annuaire** — recherche d'étudiants par nom, école, pays ou filière
- **Ressources pédagogiques** — partage de cours, anciens sujets d'examen et guides, filtrable par école/filière
## Architecture
```
campushub-africa/
├── backend/ # API REST + WebSocket (Express + TypeScript)
│ ├── src/
│ │ ├── routes/ # auth, publications, utilisateurs, messages, ressources
│ │ ├── middleware/ # authentification JWT
│ │ ├── sockets/ # messagerie temps réel (Socket.io)
│ │ ├── types/ # types TypeScript partagés
│ │ ├── db.ts
│ │ └── server.ts
│ └── database/
│ └── schema.sql
└── frontend/ # Interface Next.js (App Router, TypeScript)
├── app/
│ ├── connexion/ inscription/
│ ├── fil/ annuaire/ messagerie/ ressources/
│ └── globals.css
├── components/
└── lib/ # client API, client Socket.io, types
```
## Installation
### Prérequis
- Node.js ≥ 18
- PostgreSQL ≥ 14
### 1. Base de données
```bash
createdb campushub
psql -d campushub -f backend/database/schema.sql
```
# …