bgjug / website

The website of jug.bg, written with Java EE
3 stars 15 forks source link

= website

image:https://badges.gitter.im/bgjug/website.svg[link="https://gitter.im/bgjug/website?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]

Bulgarian Java User Group future website build on Quarkus, Hibernate Panache and React.

For tasks use the github issues.

= react webui related stuff

== Installation

We use https://github.com/eirslett/frontend-maven-plugin[eirslett's maven plugin] to build the front end.

We use mvn frontend:install-node-and-npm to install project specific versions of npm and node. This is bound to generate-resources phase.

IntelliJ 15 has mvn <3.1, we require >3.1. So install maven separately.

= Running the backend

The backend is using Quarkus and needs just a little tweak before it is started. You'll first need to install the database which for testing purposes can be ran with docker. To run the database execute the following line in your terminal:

[shell]

docker run --network="host" --name mysql-test -e MYSQL_ROOT_PASSWORD=admin -d mysql:5

Normally the server will bind to port 3306. Your database user is root and the password is admin.

Alternatively you can install a local MySQL/MariaDB engine version 5.7 (do not use 8.x) and set the root password to 'admin'

When the container is running (or when your local database is running), connect to the database server and create the database:

[sql]

CREATE DATABASE bgjug CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

After a success you should be able to start the application server and send requests to it. To start the server in developer mode execute: ./mvnw compile quarkus:dev

NOTE: Since the database creation strategy is drop-and-create you will see exceptions in the server log when you run it for the first time. This is fine as hibernate is trying to query the deletion of non-existing tables.

In order to generate SOME data like articles and tags and etc please open http://localhost:8080/api/test once

Alternatively you should import the database backup

You can also open the frontend folder and run npm run watch, but keep in mind any change in JS will restart the server and the test data will be lost.