Welcome to the backend repository for Mooover!
Mooover is a revolutionary online platform designed to make your moving experience better by making friends joining communities, doing challenges and taking part in public events all around the world!
- Introduction
- Features
- Architecture
- Project Setup
- Deployment
- Usage
- Microservices
- Contributing
- License
- Contact
This repository contains the backend codebase, which handles the core functionality and data management using FastAPI, integrates with Auth0 for authentication, and leverages Neo4j's AuraDB for graph database capabilities.
- FastAPI for building a robust and high-performance backend.
- Auth0 for secure authentication and authorization.
- Neo4j AuraDB for advanced graph database functionalities.
- Docker Compose for local development and deployment.
- Microservices architecture to ensure modularity and scalability.
- Heroku deployment for easy and free hosting.
The backend is structured into multiple microservices, each responsible for a specific domain of the application. This modular approach ensures better scalability and maintainability. Each microservice has its own folder with a detailed README explaining its specific functionality and setup.
Before you begin, ensure you have the following tools installed:
- Docker and Docker Compose
- Python 3.8+
- Git
- Auth0 account
- Neo4j AuraDB account
- Clone the repository:
git clone https://github.com/adipopbv/mooover-backend.git cd mooover-backend
- Install dependencies:
It's recommended to use a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` pip install -r requirements.txt
-
Auth0 Setup:
- Create an Auth0 application and get the domain, client ID, and client secret.
- Update each service's
.config
file with your Auth0 credentials.
-
Neo4j AuraDB Setup:
- Create a Neo4j AuraDB instance and get the connection details.
- Update each service's
.config
file with your Neo4j credentials.
-
Database Password:
- Create a file called
db_password.txt
that contains only the database password. This is needed to access the database using Docker Compose. - Place it in the repo's root directory (
mooover-backend
if you followed the guide)
- Create a file called
- Start the Docker containers:
By default the API will be hosted on
docker-compose build --no-cache # builds each service from scratch docker-compose up # starts the services in docker
http://localhost:80
and each service on/api/v1/service
. - Access the API documentation:
Visit
http://localhost:80/api/v1/service/docs
to see the interactive API documentation provided by FastAPI. Replaceservice
with the service you want to check out.
You can deploy the backend side of the Mooover project on any other suitable hosting service, but for now the official backend is being hosted on Heroku.
Once the application is up and running, you can interact with the backend via the provided API endpoints. Detailed documentation for each endpoint is available at http://your-deployed-app.herokuapp.com/api/v1/service/docs
where service
can be replaced by the service you want to check out.
Each microservice within the Mooover backend is located in the services
directory. Refer to the individual README files within each service's folder for more detailed information on setup, configuration, and functionality.
We welcome contributions to improve Mooover! Please see our Contributing Guide for more details.
This project is licensed under the BSD-3-Clause License. See the LICENSE file for details.
For any questions or feedback, feel free to reach out at adi.pop.bv@gmail.com.
Let's get Moooving!