Skip to content

An API for a The Universe Vault portal that contains information about our planets, moons, solar-systems, stars, galaxies in The Universe

Notifications You must be signed in to change notification settings

integrityofstellar/TheUniverseVaultAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Universe Vault API

The Universe Vault API is a RESTful API that allows you to manage Planets, Stars, Moons, Solar Systems and Galaxies in the Universe. It will be a major part of the future systems like StarID (Interstellar Identification System) and the Universe Explorer as well as general knownledge-database.

Live Demo

The Universe Vault API is currently under development and there is no live demo available at the moment.

Features

  • Create/Read for Planets, Stars, Moons, Solar Systems and Galaxies
  • Update/Delete (full CRUD) for Planets, Stars, Moons, Solar Systems and Galaxies
  • Search/Filter for Planets, Stars, Moons, Solar Systems and Galaxies
  • User Authentication and Authorization
  • Rate Limiting and Security
  • API Documentation
  • Testing and CI/CD
  • Docker Deployment
  • Live Demo
  • More features to come...

Codebase Note

At the moment Python3, FastAPI and MongoDB used for this project, as it makes development fast and easy, exactly what we need for concept or you can say MVP.
However in the future I'll rewrite everything to Rust-lang, and possibly will keep MongoDB as a database, tips and feedback is welcome!

Getting Started

To get started with the Universe Vault API, you need to have the following installed on your machine (Recomended way):

Manual installation is also possible, for the testing purposes, but it is not recommended for production:

API Documentation

Coming soon... So far you can have TUVINS.json which is Insomnia v4 exported collection that I've used during development(if you will use it - don't forget to change environment variables as it has some handy shortcuts), and the Swagger docs at /docs endpoint.
Later on I will provide separate documentation about how to use this API.

Docker Installation (Recomended)

To install the Universe Vault API, you need to clone the repository and run the following command:

git clone https://github.com/integrityofstellar/TheUniverseVaultAPI
cd TheUniverseVaultAPI
docker-compose up

Manual Installation

To install the Universe Vault API, you need to clone the repository and run the following command:

git clone https://github.com/integrityofstellar/TheUniverseVaultAPI
cd TheUniverseVaultAPI

We using poetry for the package management, you can use it to install the dependencies, or you can use pip as well:

poetry install

or

pip install -r requirements.txt

Then you need to set the environment variables in the .env file, you can use the .env.example file as a template.
Also, you need to have MongoDB installed on your machine or use a cloud service like Atlas.

After installing the dependencies and database with env variables, you can activate venv and run the API using the following command:

poetry shell
uvicorn app.main:app --reload

or

source venv/bin/activate
uvicorn app.main:app --reload

Usually, the API will be running on http://127.0.0.1:8000/ and the swagger docs will be available at http://127.0.0.1:8000/docs.

Contributing

If you want to contribute to the Universe Vault API, you can fork the repository and create a pull request with your changes. Currently, there are no guidelines for contributing, but you can follow the existing code style and structure.

About

An API for a The Universe Vault portal that contains information about our planets, moons, solar-systems, stars, galaxies in The Universe

Topics

Resources

Stars

Watchers

Forks

Languages