Megalithic Timeline Project
Investigative science journalism through machine learning in the hands of Citizen Scientist and open data
Project Megalithic Timeline is an open source project to create a webapp for analyzing open data related to the history and peoples who built megalithic structures throughout time. We're a community-driven philanthropic project that began as a collaboration between Addictive Science, LLC, Philly GraphDB, and Neo4j. Our contributors are primarily based in the Philadelphia area, but anyone anywhere is welcome. This GitHub & Trello page are the two key repositories for the administrative and informational home of Megalithic Timeline.
- You will need JDK 8 for your platform. OpenJDK is preferred.
- Install Scala 2.11.x : http://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
- Install SBT 0.13.8 : https://dl.bintray.com/sbt/native-packages/sbt/0.13.8/sbt-0.13.8.tgz
Intellij IDEA is the preferred IDE, although support for Eclipse will eventually be provided.
- Download IntelliJ community version here: https://www.jetbrains.com/idea/
- When installing IntelliJ, make sure to check off the options to install Scala and SBT tools
- Import the Scala code formatting settings: File -> Import Settings -> $PROJECT_ROOT_FOLDER/ide/settings.jar
Getting the code
- You must install Git for your platform.
- From GitHub, create a fork of this repository: https://github.com/AddictiveScience/megalithicTimeline
- Clone your fork: "git clone https://github.com/$YOUR_GITHUB_USERNAME/Node-Graph-Database-Timeline timeline"
- Choose Start -> New Project -> SBT -> Choose the root folder for the Timeline project
- Create a feature branch in your fork
git checkout -b my-feature
- Develop your feature, you can commit as many times as you want into your local branch.
- Make sure your branch is up to date with master
# from your feature branch git checkout master git pull origin master git checkout my-feature git merge master
- Run the full build lifecycle to ensure nothing is broken. Run any manual verifications you need to.
- Do a squashed merge into master (NOTE - Do not develop features and make spurious commits into master. All work should be done in a feature branch and then squashed into one commit on master)*:
git checkout master git merge --squash my-feature git commit -m "$YOUR_NAME - adding support for my feature" git push origin master
- Open a pull request against https://github.com/AddictiveScience/megalithicTimeline on GitHub
Building and Running
- Compile the code
sbt clean compile
- Run Tests
- Package the code
- Build a runnable JAR
sbt package assembly
- Full build lifecylce
sbt clean compile test package assembly
- Run the services project
sbt "project services" "run"