70 lines
1.4 KiB
Markdown
70 lines
1.4 KiB
Markdown
# Filing Cabinet
|
|
|
|
React social platform shell met duidelijke scheiding tussen frontend en backend.
|
|
|
|
## Architectuur
|
|
|
|
- `frontend/`: React (Vite) UI met pagina's, routes, knoppen en directe externe API-calls.
|
|
- `backend/`: Bewust zonder eigen API-endpoints.
|
|
|
|
## Pagina's en functionaliteit
|
|
|
|
- Landing (`/`)
|
|
- Login (`/login`)
|
|
- Register (`/register`)
|
|
- Feed (`/feed`)
|
|
- Create (`/create`)
|
|
- Profile (`/profile`)
|
|
|
|
Werkende acties:
|
|
|
|
- Inloggen en registreren
|
|
- Alle posts laden
|
|
- Eigen posts laden
|
|
- Posts aanmaken, bewerken en verwijderen
|
|
- Beveiligde postafbeeldingen laden
|
|
- Uitloggen
|
|
|
|
## Externe API-koppeling
|
|
|
|
Frontend gebruikt alleen externe API-calls via:
|
|
|
|
- `VITE_API_BASE_URL`
|
|
|
|
De volgende endpoints worden vanuit de frontend aangeroepen:
|
|
|
|
- `POST /auth/login`
|
|
- `POST /auth/register`
|
|
- `GET /posts`
|
|
- `GET /posts/me`
|
|
- `GET /posts/image/:filename`
|
|
- `POST /posts/create`
|
|
- `PUT /posts/edit?id=<id>`
|
|
- `DELETE /posts/delete?id=<id>`
|
|
|
|
Zie `frontend/.env.example`.
|
|
|
|
## Security en validatie in UI
|
|
|
|
- Sessiegegevens staan in `sessionStorage` (niet meer in `localStorage`).
|
|
- Upload heeft client-side limiet van 5 MB.
|
|
- Login/register hebben client-side inputvalidatie (lengte/patterns).
|
|
|
|
## Starten
|
|
|
|
### 1) Frontend
|
|
|
|
```bash
|
|
cd frontend
|
|
cp .env.example .env
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Frontend draait standaard op `http://localhost:5173`.
|
|
|
|
## Belangrijk
|
|
|
|
Deze repository bevat geen lokale backend API.
|
|
Auth, database, vrienden en uploads worden extern afgehandeld.
|