educhastenier / mixit

MiXiT website

Home Page:https://mixitconf.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Travis CI

MiXiT website

This project purpose is to power the MiXiT website.

Software design

This project software design goal is to demonstrate what a functional web application developed with Spring Boot 2, Spring WebFlux and Kotlin can look like:

Technologies used

TODO

Developer guide

Prerequisite

  • Install Git
  • Fork and clone the project
  • Install Java 8
  • Depending on your platform, you may have to install libpng (On mac with brew install libpng or on Ubuntu your need to install libpng12 with this package because the default one is too recent)

Run the app in dev mod using command line

  • Run ./gradlew bootRun in another terminal
  • Run ./gradlew watch in another terminal
  • Open http://localhost:8080/ in your browser
  • If you want to debug the app, add --debug-jvm parameter to Gradle command line

Sass, TypeScript, messages*.properties and templates should be live reloaded.

Import and run the project in IDEA

  • Make sure you have at least IntelliJ IDEA 2017.2.x and IDEA Kotlin plugin 1.1.4+ (menu Tools -> Kotlin -> configure Kotlin Plugin Updates -> make sure "Stable" channel is selected -> check for updates now -> restart IDE after the update)
  • Import it in IDEA as a Gradle project
  • In IntelliJ IDEA, right click on Application.kt then Run ... or Debug ...
  • Run ./gradlew watch in another terminal
  • Open http://localhost:8080/ in your browser

Sass, TypeScript, messages*.properties and templates should be live reloaded.

Package and run the application from the executable JAR:

./gradlew clean build
java -jar build/libs/mixit-1.0.0-SNAPSHOT.jar

Deploy the app on Clever Cloud

When you merge a PR into prod branch (usually from master branch) it will trigger a deployment on Clever Cloud.

Copy PROD data to src/main/resources/data

curl https://mixitconf.org/api/blog | python -m json.tool > blog.json
curl https://mixitconf.org/api/event | python -m json.tool > events.json
curl https://mixitconf.org/api/user | python -m json.tool > users.json
curl https://mixitconf.org/api/2022/talk | python -m json.tool > talks_2022.json
git commit -a -m "Update data from PROD"

About

MiXiT website

https://mixitconf.org

License:Apache License 2.0


Languages

Language:Kotlin 59.1%Language:Mustache 33.8%Language:SCSS 6.0%Language:TypeScript 0.8%Language:JavaScript 0.4%Language:HTML 0.0%