Coder Social home page Coder Social logo

unicovoit / unicovoit Goto Github PK

View Code? Open in Web Editor NEW
9.0 1.0 6.0 3.79 MB

Carpool platform for students

Home Page: https://unicovoit.fr

License: GNU Affero General Public License v3.0

Vue 48.26% JavaScript 3.39% Dockerfile 0.68% TypeScript 34.92% CSS 5.03% Sass 0.17% Shell 0.09% HTML 7.45%
carpool covoit covoiturage university universite iut etudiant student nuxt

unicovoit's Introduction

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.

unicovoit's People

Contributors

dependabot[bot] avatar finxol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

unicovoit's Issues

[FEATURE] Adding intermediate steps

Justification

Currently, when we add a trip, it takes two cities, the departure and the arrival. So, when searching for a trip, if we search for a trip Departure City -> City on the trip, we will not find.
Trips are restricted to the single cities of the trip, and no flexibility is really possible. This is further emphasized by the fact that we cannot see the entire list of trips, not allowing manual search.

A system allowing this flexibility is therefore more than necessary

Explanation

If we consider that when the person, during the entry of the trip, enters the arrival and departure of his trip. It is theoretically possible to find his route and therefore the possible stopovers.
It would therefore be necessary to add, between step 2 and 3, a part that lists all the possible stopovers found on the route (within 5km of the route).
This may be possible using the APIs of google maps or openstreet map. The user would have the possibility to modify / delete / add steps which would recalculate the itinary and potentially the possible steps.
A visualization with a map can also be possible to allow the user to better visualize how his route is arranged.

Thus, when searching for a route, the algorithm would no longer be based solely on the city of departure and arrival but also on all the automatic / informed by the user.

Send emails

Send emails on trip add, delete, book, cancellation

Add recurring trips

Possibilities:

  • Add same trip many times for different days => not practical for dev or user
  • Add a field in the Trip model with type or recurrence => must redo trip search

Fix timezone problems

There is a time difference between the time entered when adding a trip and the displayed time in the trips page

Add illustration attribution

Add a link to Icons8:

  • on pages where illustrations are used
  • on github
  • a term in About and T&C to prohibit reuse of illustrations

Rebuild trips results page

The trip is now coordinates.
Use addok instace with /reverse endpoint to get the place name from the coordinates

Profile Fields

Profile fields:

  • Payment delay (3h before)
  • smoking ?
  • Music ?
  • ...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.