Skip to content

A web store where you can design and buy your own family tree, engraved in wood with a laser

License

Notifications You must be signed in to change notification settings

treecreate/webstore

Repository files navigation


Treecreate logo

Treecreate Webstore

A web store where you can design and buy your own family tree, engraved in wood with a laser
Explore the docs »

· Report Bug · Request Feature ·

Table of Contents

About The Project

Treecreate webstore is a monorepo consisting of multiple apps working together

Key points

  • An api built with Java Springboot, with MySQL for persistance
  • A frontend app built with Angular
  • All apps are contained within a NX monorepo for easy management

This project is an improved version of our previous repository, with the frontend and backend split into separate apps.

Built With

Getting Started

The repository is made as a monorepo using NX. The applications are located in the /apps directory

Prerequisites

In order to run this project locally and develop it, you need to have Node and JDK 11 installed.

Node

We strongly suggest installing Node via NVM.
It allows easy updates of Node, which is critical for NX to work properly. We develop using the latest stable releases.

Java

We develop with Java 11. Make sure your JDK is >= 11.

Other

  • npm
npm install npm@latest -g
  • nx
npm install -g nx

Commits are made with git-cz, a wrapper for git commit

npm install -g git-cz

If you install it locally, you will have to use npx git cz instead

Installation

1. Clone the repo

git clone https://github.com/treecreate/webstore.git

2. Serve the API

The API requires the following Envirnonment variables to run. Not all variables need to have values but have to exist.

TREECREATE_JDBC_URL - url for connecting to the database. Follows a format of jdbc:mysql://username:password@hostname:port/schema?serverTimezone\=UTC&characterEncoding\=UTF-8

TREECREATE_MAIL_PASS - password for the mail provider

Only needed for sending emails

TREECREATE_QUICKPAY_API_KEY - api key for the Quickpay account

Only needed for processing payment-related data

TREECREATE_QUICKPAY_PRIVATE_KEY - private key for the Quickpay account

Only needed for processing payment-related data

TREECREATE_SENTRY_DSN - DSN key for Sentry, a logging service. Leave blank to not send any data

SHIPMONDO_URL - https://app.shipmondo.com/api/public/v3

Only needed for processing shipping information

SHIPMONDO_TOKEN- Shipmondo api key. Follows instrucions in shipmondo documentation to obtain and format it properly (should look like so: Basic base64enconded-username:password)

Only needed for processing shipping information

Serving API with IntelliJ Idea

When run through Intellij Idea, set the variables in the run configuration.

Serving API with NX

When run with NX, create a .env file in the root directory and fill out values based on the .env.template file.

Once you create and fill out the .env file, you can serve the api with the following command:

nx serve api

Serving API with Visual Studio Code

Running through Visual Studio Code is not tested and depends on what java extension you use.

3. Install NPM packages

npm install
  1. Serve the frontend apps via NX
nx serve webstore
nx serve admin-page

Api Documentation

The api features auto-generated documentation using Swagger UI.
It can be accessed at localhost:5050/docs when the api is running

How to set this up yourself

Are you interested how we set up the project and what commands we used? Checkout our setup guide

Contact

Email: info@treecreate.dk
Facebook
Instagram

License

Distributed under the BSD-3-Clause License. See LICENSE for more information.