Skip to content

phfeustel/mixit

 
 

Repository files navigation

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
  • Install Gulp for development mode
  • 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 gulp 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 gulp 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 Cloud Foundry

./gradlew clean build
cf push

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/2017/talk | python -m json.tool > talks_2017.json
commit -a -m "Update data from PROD"

Packages

No packages published

Languages

  • HTML 44.8%
  • Kotlin 38.4%
  • CSS 12.7%
  • JavaScript 3.0%
  • TypeScript 1.1%