initial: initial repo set up (README, LICENSE, CONTRIBUTORS, etc...)

This commit is contained in:
okinrev 2025-12-03 13:54:23 +01:00
parent d6a9eef4d6
commit 6e2e16fbb5
12 changed files with 644 additions and 18 deletions

28
.editorconfig Normal file
View file

@ -0,0 +1,28 @@
# ============================================================
# Veza/Talas — EditorConfig
# Standardisation des éditeurs pour un projet multi-langage
# ============================================================
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.{js,ts,jsx,tsx}]
indent_size = 2
[*.go]
indent_size = 4
indent_style = tab
[*.rs]
indent_size = 4
[Makefile]
indent_style = tab

19
.gitattributes vendored Normal file
View file

@ -0,0 +1,19 @@
# ============================================================
# Veza/Talas — Git Attributes
# ============================================================
# Normalisation des fins de ligne
* text=auto eol=lf
# Spécialisation par types (aide Linguist sur GitHub)
*.go linguist-language=Go
*.rs linguist-language=Rust
*.ts linguist-language=TypeScript
*.tsx linguist-language=TypeScript
*.js linguist-language=JavaScript
# Si tu utilises Git LFS (optionnel)
# *.mp4 filter=lfs diff=lfs merge=lfs -text
# *.wav filter=lfs diff=lfs merge=lfs -text
# *.zip filter=lfs diff=lfs merge=lfs -text

49
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View file

@ -0,0 +1,49 @@
---
name: "🐞 Bug report"
about: Décrire un bug pour le corriger proprement
title: "[BUG] "
labels: bug
---
## 🐞 Description du bug
Décrire clairement le problème.
---
## 🔁 Étapes pour reproduire
1. …
2. …
3. …
---
## ✅ Comportement attendu
Ce qui aurait dû se passer.
---
## 💻 Contexte
- Service impacté : (backend-api / chat-server / stream-server / web-frontend / infra)
- Branch : (main / develop / autre)
- Environnement : (local / dev / staging / prod)
---
## 📚 Impact sur ORIGIN
- [ ] Aucun
- [ ] Contradiction avec ORIGIN (préciser le fichier / la section)
---
## 🧪 Logs / captures (optionnel)
Coller ici :
- extraits de logs,
- captures décran,
- requêtes HTTP, etc.

View file

@ -0,0 +1,48 @@
---
name: "🚀 Feature request"
about: Proposer une nouvelle fonctionnalité ou une amélioration
title: "[FEAT] "
labels: enhancement
---
## 🎯 Description
Décrire la feature souhaitée, le problème auquel elle répond, ou la valeur ajoutée.
---
## 🧩 Contexte
- Qui en a besoin ?
- Dans quel flux de lapplication ?
- Lien avec une Phase / Milestone (Phase 0, Phase 1, etc.) ?
---
## 📚 Alignement ORIGIN
- [ ] Feature déjà définie dans ORIGIN (référence du doc + section)
- [ ] Nouvelle feature (nécessite mise à jour de ORIGIN)
---
## 🛠️ Approche technique envisagée (si tu en as une)
- Services impactés
- Nouvelles routes API ?
- Changements DB ?
---
## ✅ Critères dacceptation
- [ ] …
- [ ] …
- [ ] …
---
## 📎 Notes supplémentaires
Tout ce qui peut aider à limplémentation.

64
.github/pull_request_template.md vendored Normal file
View file

@ -0,0 +1,64 @@
# 🧩 Résumé
- **Type de changement** : (feat / fix / refactor / chore / docs)
- **Scope** : (backend-api / chat-server / stream-server / web-frontend / infra / docs)
---
## 🎯 Contexte
Expliquer en quelques lignes :
- pourquoi ce changement,
- à quel besoin il répond,
- lien éventuel avec un document ORIGIN ou une tâche (Phase, Milestone).
---
## 🔍 Détails techniques
- Points clés dimplémentation
- Structures / modules touchés
- Changement de contrats API ? (si oui, détailler)
---
## 📚 Impact sur ORIGIN
- [ ] Aucun impact
- [ ] Mise à jour nécessaire de la documentation ORIGIN
Si oui, préciser :
- Fichiers ORIGIN impactés (`docs/ORIGIN/…`)
- Nature du changement (ajout / correction / refonte partielle)
---
## ✅ Tests exécutés
Coche ce qui a été lancé :
- [ ] `go test ./...` (backend-api)
- [ ] `cargo test` (chat-server)
- [ ] `cargo test` (stream-server)
- [ ] `pnpm test` (web-frontend)
- [ ] Tests manuels locaux (décrire rapidement)
---
## ⚠️ Breaking changes
- [ ] Aucune
- [ ] Oui
Si oui, expliquer :
- Ce qui casse
- Comment migrer
- Impact sur les clients / infra
---
## 💬 Notes diverses
- TODO restant éventuel
- Pistes pour améliorations futures

34
.github/workflows/backend-ci.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Backend API CI
on:
push:
paths:
- "apps/backend-api/**"
- ".github/workflows/backend-ci.yml"
pull_request:
paths:
- "apps/backend-api/**"
- ".github/workflows/backend-ci.yml"
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/backend-api
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: Download deps
run: go mod download
- name: Run tests
run: go test ./...

32
.github/workflows/chat-ci.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Chat Server CI
on:
push:
paths:
- "apps/chat-server/**"
- ".github/workflows/chat-ci.yml"
pull_request:
paths:
- "apps/chat-server/**"
- ".github/workflows/chat-ci.yml"
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/chat-server
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Run tests
run: cargo test --all

37
.github/workflows/frontend-ci.yml vendored Normal file
View file

@ -0,0 +1,37 @@
name: Frontend CI
on:
push:
paths:
- "apps/web-frontend/**"
- ".github/workflows/frontend-ci.yml"
pull_request:
paths:
- "apps/web-frontend/**"
- ".github/workflows/frontend-ci.yml"
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/web-frontend
steps:
- uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install pnpm
run: npm install -g pnpm
- name: Install dependencies
run: pnpm install
- name: Run tests
run: pnpm test

32
.github/workflows/stream-ci.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Stream Server CI
on:
push:
paths:
- "apps/stream-server/**"
- ".github/workflows/stream-ci.yml"
pull_request:
paths:
- "apps/stream-server/**"
- ".github/workflows/stream-ci.yml"
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: apps/stream-server
steps:
- uses: actions/checkout@v4
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Run tests
run: cargo test --all

87
.gitignore vendored
View file

@ -1,21 +1,74 @@
# Generated by Cargo # ============================================================
# will have compiled files and executables # Veza/Talas — Global .gitignore
debug # Stack: Go, Rust, TypeScript/React, Docker, Scripts
target # ============================================================
# These are backup files generated by rustfmt ### Node / JS
**/*.rs.bk node_modules/
dist/
build/
.next/
pnpm-lock.yaml
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# MSVC Windows builds of rustc generate these, which store debugging information ### Rust
*.pdb target/
Cargo.lock
*.rs.bk
# Generated by cargo mutants ### Go
# Contains mutation testing data bin/
**/mutants.out*/ *.exe
*.exe~
*.dll
*.so
*.dylib
### Python (scripts/tools)
__pycache__/
*.pyc
### Logs / Dumps
*.log
logs/
*.pid
*.seed
*.gz
### Editors / IDE
.vscode/
.idea/
*.swp
*.swo
### System trash
.DS_Store
Thumbs.db
### Temp / Cache
tmp/
temp/
.cache/
coverage/
coverage-final.json
### Test artifacts
*.test
*.coverage
### Build / Bundles
*.wasm
*.bundle.js
*.map
### Environment / Secrets (NE JAMAIS COMMIT)
.env
.env.*
.secrets/
### Docker
docker-data/
*.tar
# RustRover
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/

126
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,126 @@
# 🤝 Contribuer à Veza
Merci de contribuer à Veza !
Ce guide formalise un workflow clair, reproductible et adapté à la complexité du projet.
---
# 1. Philosophie du projet
Veza suit trois principes :
1. **Cohérence** — respecter la structure ORIGIN (docs/ORIGIN/).
2. **Lisibilité** — code clair, typé, testé, documenté.
3. **Évolutivité** — préférer une architecture modulaire à un hack rapide.
---
# 2. Branching Model
- `main` : toujours stable, toujours déployable.
- `develop` (optionnel) : branche dintégration continue.
- Branches par fonctionnalité :
````
feat/<nom-fonction>
fix/<bug>
chore/<tâche-technique>
refactor/<refacto>
docs/<documentation>
```
Exemples :
- `feat/auth-refresh-tokens`
- `fix/jwt-uuid-mismatch`
- `refactor/chat-room-architecture`
---
# 3. Convention de commits
Suivre le style **Conventional Commits** :
```
feat: ajout fonctionnalité
fix: correction de bug
chore: tâches automatiques, maj deps
docs: ajout ou mise à jour docs
refactor: restructuration sans changement de comportement
test: ajout/màj tests
ci: pipeline CI/CD
````
Exemples :
- `feat: add adaptive HLS transcoding worker`
- `fix: correct JWT user_id mismatch between Go and Rust`
- `refactor: isolate DM module in chat-server`
---
# 4. Tests & Qualité
Avant toute PR :
1. Lancer les tests Go :
```bash
go test ./...
````
2. Lancer les tests Rust :
```bash
cargo test
```
3. Lancer les tests du frontend :
```bash
pnpm test
```
4. Vérifier lfmt / clippy :
```bash
cargo fmt --all --check
cargo clippy -- -D warnings
```
5. Vérifier go vet :
```bash
go vet ./...
```
---
# 5. Pull Requests
1. Toujours ouvrir une PR, même si vous êtes seul.
2. Décrire :
* Contexte
* Changement
* Impact sur l'architecture ORIGIN
* Migrations nécessaires ?
* Compatibilité ascendante ?
3. Ajouter des captures si cest du frontend.
4. Pas de merge si CI échoue.
---
# 6. Documentation
* Tout changement significatif doit être reflété dans `docs/`.
* Si une décision touche à larchitecture : mettre à jour la section `ORIGIN`.
---
Merci de rendre Veza meilleur !

106
README.md
View file

@ -1 +1,105 @@
# veza # 🌌 Veza — Plateforme créative et collaborative nouvelle génération
Veza est une plateforme audio complète et modulaire : partage, streaming haute performance, collaboration, chat temps réel, marketplace, analytics, et gestion créative.
Conçue pour être **intensive**, **scalable** et **créatrice de communautés**, elle s'appuie sur une architecture hybride **Go + Rust + React** pensée pour durer.
---
## 🏛️ Architecture (vue ultra-résumée)
```
veza/
├── apps/
│ ├── backend-api/ # API Go (auth, users, tracks, playlists…)
│ ├── chat-server/ # WebSocket Rust (rooms & DM)
│ ├── stream-server/ # Serveur audio Rust (FFmpeg, HLS)
│ └── web-frontend/ # Interface React/TS, Zustand, shadcn/ui
├── infra/
│ ├── docker/ # Images, scripts, entrypoints
│ ├── incus/ # Containers Dev/Prod
│ ├── ansible/ # Déploiement automatisé
│ └── k8s/ # (optionnel) Manifests Kubernetes
├── docs/
│ ├── ORIGIN/ # Spécifications "Constitution"
│ ├── ARCHITECTURE/
│ ├── FEATURES/
│ └── ROADMAP/
└── scripts/
├── dev/
├── ci/
└── smoke-tests/
````
---
## 🚀 Lancer le projet en local (dev environment)
**Pré-requis :**
- Go ≥ 1.22
- Rust ≥ 1.75
- pnpm ou npm
- Docker + docker-compose
- PostgreSQL + Redis
### 1. Cloner le repo
```bash
git clone https://github.com/your-org/veza.git
cd veza
````
### 2. Lancer lenvironnement de développement
```bash
docker compose up -d
```
### 3. Lancer chaque service
#### Backend Go
```bash
cd apps/backend-api
go run cmd/server/main.go
```
#### Chat server (Rust)
```bash
cd apps/chat-server
cargo run
```
#### Stream server (Rust)
```bash
cd apps/stream-server
cargo run
```
#### Frontend
```bash
cd apps/web-frontend
pnpm install
pnpm dev
```
---
## 📜 Licence
Le projet est distribué sous licence **AGPL-3.0** (voir fichier `LICENSE`).
---
## 🤝 Contributions
Les contributions sont les bienvenues ! Voir `CONTRIBUTING.md`.