/mechdb

Mechanical keyboards public database

Primary LanguageVue

Requirements

  • Docker & docker-compose packages (requires Linux or OSX)
  • Git (have a look at GitKraken for a GUI)
  • Code editor (try out VS Code and its extension pack if you don't have a preferred editor already)

Get started

Note : This will use port 80 of your computer. You may need to shut down Apache if it is already running on your machine (that would get you a "port allocated" error).

Before being able to run the website, you'll need to run the following commands:

# make sure all dependencies are met
docker-compose run api yarn install
docker-compose run web yarn install

# generate admin user
docker-compose run api yarn bootstrap

Now start the website by typing in a terminal window (in the root folder of this repo same as this README) :

docker-compose up

Then open your web browser: http://localhost

To access MongoDB client (UI for mongodb), open http://0.0.0.0:3333 in your browser and use db as Host, and website as Database name.

Development

Everything is hot-reloaded (meaning you just change the code, and the API or website restarts itself).

Front-end

Front-end is in the web folder.

It is based on NuxtJS framework, which is an extension of VueJS. Both frameworks have an extensive documentation, very clear and thorough, you will want to have a good knowledge of how they work.

CSS elements are based on Bulma, and more specifically Buefy which is the VueJS implementation of the Bulme components. Refer to Buefy documentation for custom components.

Icons used are listed on materialdesignicons.com.

Back-end

Back-end is in the api folder.

It is based on Express, a NodeJS framework to make web servers.

Configure the API using a api.env file. Copy api.env.sample to api.env (in the /api folder) and replace the variables with the secret keys (ask @kartsims, or use your own).