initial commit
This commit is contained in:
187
README.md
187
README.md
@@ -1,36 +1,181 @@
|
||||
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
||||
# Mes Budgets Participatifs
|
||||
|
||||
## Getting Started
|
||||
Une application web moderne pour gérer des campagnes de budgets participatifs, permettant aux collectifs de décider collectivement de leurs dépenses budgétaires.
|
||||
|
||||
First, run the development server:
|
||||
## 🚀 Technologies utilisées
|
||||
|
||||
- **Frontend**: Next.js 14 avec TypeScript et App Router
|
||||
- **Styling**: Tailwind CSS + Headless UI
|
||||
- **Base de données**: PostgreSQL via Supabase
|
||||
- **Authentification**: Supabase Auth (prévu pour les futures versions)
|
||||
- **Icons**: Heroicons
|
||||
|
||||
## 📋 Fonctionnalités
|
||||
|
||||
### ✅ Implémentées
|
||||
- Page d'accueil avec présentation de l'application
|
||||
- Interface d'administration pour gérer les campagnes
|
||||
- Création de nouvelles campagnes avec tous les paramètres
|
||||
- Ajout de propositions à une campagne
|
||||
- Ajout de participants à une campagne
|
||||
- Gestion des états de campagne (dépôt, vote, fermé)
|
||||
- Interface moderne et responsive
|
||||
|
||||
### 🔄 À venir
|
||||
- Authentification des utilisateurs
|
||||
- Interface de vote pour les participants
|
||||
- Résultats et statistiques des votes
|
||||
- Notifications par email
|
||||
- Gestion des permissions
|
||||
|
||||
## 🛠️ Installation
|
||||
|
||||
### Prérequis
|
||||
- Node.js 18+
|
||||
- npm ou yarn
|
||||
- Compte Supabase
|
||||
|
||||
### 1. Cloner le projet
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
# or
|
||||
pnpm dev
|
||||
# or
|
||||
bun dev
|
||||
git clone <votre-repo>
|
||||
cd mes-budgets-participatifs
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
### 2. Installer les dépendances
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
### 3. Configuration Supabase
|
||||
|
||||
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
||||
#### Créer un projet Supabase
|
||||
1. Allez sur [supabase.com](https://supabase.com)
|
||||
2. Créez un nouveau projet
|
||||
3. Notez votre URL et votre clé anon
|
||||
|
||||
## Learn More
|
||||
#### Configurer la base de données
|
||||
1. Dans votre projet Supabase, allez dans l'éditeur SQL
|
||||
2. Copiez et exécutez le contenu du fichier `supabase-schema.sql`
|
||||
|
||||
To learn more about Next.js, take a look at the following resources:
|
||||
#### Configurer les variables d'environnement
|
||||
Créez un fichier `.env.local` à la racine du projet :
|
||||
|
||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||
```env
|
||||
NEXT_PUBLIC_SUPABASE_URL=votre_url_supabase
|
||||
NEXT_PUBLIC_SUPABASE_ANON_KEY=votre_cle_anon_supabase
|
||||
```
|
||||
|
||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
||||
### 4. Lancer l'application
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Deploy on Vercel
|
||||
L'application sera accessible sur `http://localhost:3000`
|
||||
|
||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||
## 📊 Structure de la base de données
|
||||
|
||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
||||
### Table `campaigns`
|
||||
- `id`: Identifiant unique (UUID)
|
||||
- `title`: Titre de la campagne
|
||||
- `description`: Description détaillée
|
||||
- `status`: État de la campagne (`deposit`, `voting`, `closed`)
|
||||
- `budget_per_user`: Budget alloué par participant (en euros)
|
||||
- `spending_tiers`: Paliers de dépenses disponibles (séparés par des virgules)
|
||||
- `created_at`: Date de création
|
||||
- `updated_at`: Date de dernière modification
|
||||
|
||||
### Table `propositions`
|
||||
- `id`: Identifiant unique (UUID)
|
||||
- `campaign_id`: Référence vers la campagne
|
||||
- `title`: Titre de la proposition
|
||||
- `description`: Description détaillée
|
||||
- `created_at`: Date de création
|
||||
|
||||
### Table `participants`
|
||||
- `id`: Identifiant unique (UUID)
|
||||
- `campaign_id`: Référence vers la campagne
|
||||
- `first_name`: Prénom du participant
|
||||
- `last_name`: Nom du participant
|
||||
- `email`: Adresse email
|
||||
- `created_at`: Date de création
|
||||
|
||||
## 🎨 Interface utilisateur
|
||||
|
||||
### Page d'accueil
|
||||
- Présentation de l'application
|
||||
- Bouton d'accès à l'administration
|
||||
- Design moderne avec gradient et cartes informatives
|
||||
|
||||
### Page d'administration
|
||||
- Liste des campagnes existantes
|
||||
- Bouton pour créer une nouvelle campagne
|
||||
- Actions rapides pour chaque campagne :
|
||||
- Ajouter une proposition
|
||||
- Ajouter un participant
|
||||
- Indicateurs visuels pour les états des campagnes
|
||||
|
||||
### Modals
|
||||
- **Création de campagne** : Formulaire complet avec validation
|
||||
- **Ajout de proposition** : Titre et description
|
||||
- **Ajout de participant** : Informations personnelles
|
||||
|
||||
## 🔧 Développement
|
||||
|
||||
### Structure des fichiers
|
||||
```
|
||||
src/
|
||||
├── app/ # Pages Next.js (App Router)
|
||||
│ ├── page.tsx # Page d'accueil
|
||||
│ └── admin/ # Pages d'administration
|
||||
├── components/ # Composants React réutilisables
|
||||
├── lib/ # Services et configuration
|
||||
│ ├── supabase.ts # Configuration Supabase
|
||||
│ └── services.ts # Services de données
|
||||
└── types/ # Types TypeScript
|
||||
└── index.ts # Définitions des types
|
||||
```
|
||||
|
||||
### Scripts disponibles
|
||||
```bash
|
||||
npm run dev # Lancer en mode développement
|
||||
npm run build # Construire pour la production
|
||||
npm run start # Lancer en mode production
|
||||
npm run lint # Vérifier le code avec ESLint
|
||||
```
|
||||
|
||||
## 🚀 Déploiement
|
||||
|
||||
### Vercel (recommandé)
|
||||
1. Connectez votre repo GitHub à Vercel
|
||||
2. Configurez les variables d'environnement dans Vercel
|
||||
3. Déployez automatiquement
|
||||
|
||||
### Autres plateformes
|
||||
L'application peut être déployée sur n'importe quelle plateforme supportant Next.js :
|
||||
- Netlify
|
||||
- Railway
|
||||
- DigitalOcean App Platform
|
||||
- AWS Amplify
|
||||
|
||||
## 🤝 Contribution
|
||||
|
||||
1. Fork le projet
|
||||
2. Créez une branche pour votre fonctionnalité
|
||||
3. Committez vos changements
|
||||
4. Poussez vers la branche
|
||||
5. Ouvrez une Pull Request
|
||||
|
||||
## 📝 Licence
|
||||
|
||||
Ce projet est sous licence MIT. Voir le fichier `LICENSE` pour plus de détails.
|
||||
|
||||
## 🆘 Support
|
||||
|
||||
Pour toute question ou problème :
|
||||
1. Vérifiez la documentation Supabase
|
||||
2. Consultez les issues GitHub
|
||||
3. Créez une nouvelle issue si nécessaire
|
||||
|
||||
---
|
||||
|
||||
**Développé avec ❤️ pour faciliter la démocratie participative**
|
||||
|
||||
Reference in New Issue
Block a user