Skip to content

Latest commit

 

History

History
215 lines (150 loc) · 5.88 KB

README.en.md

File metadata and controls

215 lines (150 loc) · 5.88 KB

UniCovoit

Carpool platform for students

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

GitHub stars GitHub Sponsors

Official website: unicovoit.fr

Services uptime monitor: https://status.unicovoit.fr

Language

Summary

Features

  • All accounts are verified as belonging to a student
  • Add and book trips between students
  • Mark your trip as recurring so that you don't have to add the same one every week
  • Add and book trips up to 3 months in advance
  • Light/dark mode toggle

UniCovoit doesn't handle payments

Contribute and Support

If you want to contribute to the project, feel free to open an issue or create a pull request.

If you have any feedback, you can reach me on Discord (finxol#8918), Twitter or via email on [email protected]

You can also support the project by donating to the GitHub Sponsorship Program.

Add your university

To add your university, edit the file universities.ts in a new pull request.

You must follow the following format:

{
    id: "<unique identifier>",
    name: "<full name of university>",
    country: "<country of the university>",
    format: /^university address format$/
}

Build on existing entries.

Tech Stack

Framework: Vuetify, Nuxt + Typescript

Server: Node (Typescript), Express

Environment Variables

To run this project, you will need to add the following environment variables to your .env file

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>

Run Locally

# Clone the project
git clone https://github.com/finxol/unicovoit
cd unicovoit

# Install dependencies
yarn install

# Start the server
yarn dev

Deployment

Before building, your need a .dockersecrets directory

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

The files respectively contain the Auth0 Client ID and the Auth0 tenant domain.

You should also have a .env' file with the environment variables stated previously, and a completed .mongo.env` file.

# build and run with podman
yarn podman

# build the image 
yarn podman:build

# kill the container, rebuild the image and run 
yarn podman:rebuild

# run the image
yarn podman:run

# kill the container
yarn podman:kill

If you prefer using Docker, just replace podman with docker in the commands above.

Addok

For address auto-completion, an addok instance is used.

To setup your own, follow the steps detailed in this issue.

Authors

Acknowledgements

UniCovoit is still under development. Not all features might be implemented yet

License

Can Must Cannot
Commercial Use Disclose Source Liability
Distribution License and Copyright Notice Warranty
Modification Same License
Patent Use State Changes
Private Use

For more information, please read the LICENSE file, or go to Choose A License.

API Reference

List of supported universities

GET /api/v1/universities
Response format
{
    universities: [
        {
            id: string,
            name: string,
            country: string
        }
    ]
}

Get all published trips

  GET /api/v1/trips

Get the average price of Unleaded 95 for France

  GET /api/v1/trips/petrol

Access the public profile of a user

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

All other API routes are only accessible by authenticated users