Skip to content

Latest commit

 

History

History
215 lines (149 loc) · 6.62 KB

README.md

File metadata and controls

215 lines (149 loc) · 6.62 KB

UniCovoit

Plateforme de covoiturage pour étudiants

Website GitHub package.json version Docker Build Status Security Headers GitHub license GitHub issues

GitHub stars GitHub Sponsors

Site officiel : unicovoit.fr

Suivi de la disponibilité des services : https://status.unicovoit.fr

Langue

Sommaire

Features

  • Tous les comptes sont vérifiés comme appartenant à un étudiant
  • Ajouter et réserver des voyages entre étudiants
  • Marquez vos voyages comme récurrents afin de ne pas avoir à ajouter le même voyage chaque semaine.
  • Ajouter et réserver des voyages jusqu'à 3 mois à l'avance.
  • Mode clair/sombre

UniCovoit ne prend pas en charge les paiements

Contribuer et soutenir

Si vous souhaitez contribuer au projet, n'hésitez pas à ouvrir une issue ou à créer une pull request.

Si vous avez des retours, vous pouvez me joindre sur Discord (finxol#8918), Twitter (@_finxol) ou par mail à [email protected].

Vous pouvez également soutenir le projet en faisant un don par le Programme de parrainage GitHub.

Ajoutez votre université

Pour ajouter votre université, modifiez le fichier universities.ts dans une nouvelle pull request.

Vous devez respecter le format suivant :

{
    id: "<identifiant unique>",
    name: "<nom complet de l'université>",
    country: "<pays de l'université>",
    format: /^format des addresses universitaires$/
}

Inspirez-vous des entrées existantes.

Stack technologique

Framework: Vuetify, Nuxt + Typescript

Serveur: Node (Typescript), Express

Variables d'Environnement

Pour lancer ce projet localement, vous devez avoir les variables d'environnement suivantes :

AUTH0_CLIENTID=<your auth0 client ID>
AUTH0_DOMAIN=<your auth0 tenant domain>
MAPBOX_TOKEN=<your mapbox token>
DISCORD_SECRET=<your Discord token>
MONGO_USER=<username for Mongo>
MONGO_PASSWORD=<password for Mongo>
VERIFICATION_SECRET=<secret to use with Auth0 Action>

Lancer Localement

# Cloner le projet
git clone https://github.com/finxol/unicovoit
cd unicovoit

# Installer les dépendances
yarn install

# Démarrer le serveur de développement
yarn dev

Déploiement avec Docker

Avant de construire l'image Docker, vous devez avoir un répertoire .dockersecrets.

.dockersecrets
├── auth0_clientid.txt
└── auth0_domain.txt

Ces fichiers contiennent respectivement l'ID du client Auth0 et le domaine du tenant Auth0..

Vous devez également avoir un fichier .env avec les variables d'environnement déclarées plus tôt, ainsi qu'un fichier .mongo.env complété.

# Construire l'image et l'exécuter avec Podman
yarn podman

# Construire l'image 
yarn podman:build

# Arrêter le container, reconstruire l'image et la lancer
yarn podman:rebuild

# Exécuter l'image
yarn podman:run

# Arrêter le container
yarn podman:kill

Si vous préférez utiliser Docker, remplacez simplement podman par docker dans les commandes ci-dessus.

Addok

Pour l'autocomplétion des adresses, une instance addok est utilisée.

Pour configurer la vôtre, suivez les étapes détaillées dans cette issue.

Auteurs

Mentions particulières

UniCovoit est encore en cours de développement. Toutes les fonctionnalités ne sont pas encore implémentées.

Licence

Autorisé Obligatoire Interdit
Utilisation commerciale Publier la source Responsabilité civile
Distribution Licence et Avis de droits d'auteur Garanties
Modification Même Licence
Utilisation Privée Déclarer les changements

Pour plus d'informations, veuillez lire le fichier LICENSE, ou allez à Choose A License.

Référence d'API publiques

Liste des universités prises en charge

GET /api/v1/universities
Format de réponse
{
    universities: [
        {
            id: string,
            name: string,
            country: string
        }
    ]
}

Obtenir tous les voyages publiés

GET /api/v1/trips

Obtenir le prix moyen du Sans Plomb 95 pour la France

GET /api/v1/trips/petrol

Accéder au profil public d'un utilisateur

GET /api/v1/users/profile/:id

Toutes les autres routes API ne sont accessibles qu'aux utilisateurs authentifiés.