Gymboard/gymboard-app/README.md

57 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2023-03-26 11:33:10 +00:00
# Gymboard App
2023-01-19 20:12:25 +00:00
2023-03-26 11:33:10 +00:00
The responsive web application for Gymboard. This is a Vue 3 + Quasar project that's written in Typescript.
2023-01-19 20:12:25 +00:00
2023-03-26 11:33:10 +00:00
## Developing
In order to develop this app, you'll most likely want to start a local instance of each Gymboard service that it relies on. Each service should expose a `./start-dev.sh` script that you can call to quickly boot it up, but refer to each service's README for more detailed information, like generating sample data.
### Install the dependencies
2023-01-19 20:12:25 +00:00
```bash
yarn
# or
npm install
```
### Start the app in development mode (hot-code reloading, error reporting, etc.)
2023-01-19 20:12:25 +00:00
```bash
quasar dev
```
### Lint the files
2023-01-19 20:12:25 +00:00
```bash
yarn lint
# or
npm run lint
```
### Format the files
2023-01-19 20:12:25 +00:00
```bash
yarn format
# or
npm run format
```
### Build the app for production
2023-01-19 20:12:25 +00:00
```bash
quasar build
```
### Customize the configuration
2023-01-19 20:12:25 +00:00
See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).
2023-03-26 11:33:10 +00:00
## Structure
Within `src/`, there are a few key directories whose functions are listed below:
- `src/api/` contains a Typescript client implementation for consuming the various APIs from Gymboard services such as the CDN, Search, and main API. The main API (`src/api/main/index.ts`) can be imported with `import api from 'src/api/main';`. While the other APIs may differ based on their usage, generally the main API is structured as a hierarchy of classes with `readonly` properties to act as namespaces.
- `src/components/` contains auxiliary Vue components that help in building pages.
- `src/pages/` contains all the pages as Vue components.
- `src/i18n` contains translation files as JSON objects for all supported languages.