Code Monkey home page Code Monkey logo

caroster's Introduction

Caroster

Contributor Covenant

Caroster - Group carpool to your event

Caroster is an easy and free app to organize group carpooling for an event, a party, a seminar, a sports event, a camp, a ski trip…

Are you on GitHub ? Please use the reference repository on GitLab for issues and pull requests.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Caroster is composed of two parts:

  • A frontend app based on NextJS
  • A backend server using Strapi

Caroster is currently in Beta. Big changes can happen, especially in terms of data architecture.

Prerequisites

To fully utilize your instance of Caroster, you will need an SMTP configuration to send emails.

(Optional) Mapbox token

In order to activate geocoding and map features, you will need a Mapbox token.

Create a mapbox account if you don't have any and generate your token for free.

There is no need to setup a payment method as long as you don't exceed the temporary geocoding api free rate , but if you do so, the app will still work and geocoding will simply disable till the end of the ongoing month.

Copy the mapbox token in the .env file as a value for "MAPBOX_TOKEN" variable to start using geocoding and map features;

Tiles server

You can use the TOKEN_FREE_TILES variables in the .env file to setup a tiles server used by the map features. By default, we use the © OpenStreetMap test server.

Make sure to respect the copyrights of the tiles server you setup, or those from © OpenStreetMap if you keep the default settings.

⚠️ Be aware that some services might require a token to use their tiles server.

We don't have yet developed a way to obfuscate this token from the users.

⚠️ This means anyone accessing the application will be able to use this token on your behalf, which exposes you to substantial risks (financial, legal, reputational, operational) that may affect you and the disponibility of the service.

Installing

Clone the repo locally:

git clone https://git.octree.ch/p/caroster.git
cd caroster

Run with Docker

First, edit docker-compose.yml to provide your SMTP configuration and optional Mapbox token:

version: "3"
services:
  app:
    ...
    MAPBOX_TOKEN: pk.mapbox.token

    SMTP_HOST: smtp.myserver.org
    SMTP_PORT: 587
    SMTP_USERNAME: user
    SMTP_PASSWORD: password
...

Then, create containers with Docker Compose:

docker compose up

Wait a few minutes while the application downloads needed packages, then go to http://localhost:8080.

You can log on http://localhost:8080/admin with email [email protected] and password caroster.

Development

Frontend

These steps will prepare the frontend to run in development mode.

cd frontend
yarn # or 'npm install'
yarn dev

The frontend is now accessible on http://localhost:3000

Backend

These steps will prepare and configure the backend to run in development mode.

You need a Postgres database running locally. Start one with docker compose up psql -d.

cd backend
yarn # or 'npm install'
cp .env.example .env
vi .env # Edit with your own configuration
yarn develop

The Strapi server is now ready and the admin is accessible on http://localhost:1337/admin.

Running the tests

A few tests are available to check GraphQL endpoints behavior in the e2e directory.

First, run Strapi in test mode:

cd backend
cp .env.example .env
vi .env # Edit with your own configuration
yarn start-test

Then, run the tests:

cd e2e
yarn
yarn gql
yarn test

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Authors

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

caroster's People

Contributors

5ika avatar cyberschnaps avatar edouard-octree avatar kleenkanteen avatar mayliea avatar narkai avatar simonmulquin avatar xavierova avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

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.