Git Product home page Git Product logo

aeronautica-imperialis's Introduction

BSData Project

BattleScribeDataWeb is the web application that serves BattleScribe data files from the various data repositories on GitHub. It is a Java 8 web application designed to run on Google App Engine. It is built and deployed using Maven 3.5.

It consists of an Angular (JavaScript) front end and a RESTful (Jersey / JAX-RS) back end.

This guide is written from the perspective of a Netbeans IDE user running Windows, however you can use any IDE or toolset that supports Maven.

It is assumes that you have some experience with developing on Windows, or can translate the following to your operating system of choice. You should also have some knowledge of software development/programming using Java (or are willing to learn it!).

Contents

Before You Start

  1. Make sure you have a Google account.
  2. Make sure you have a GitHub account and are a member of the BSData organisation (https://github.com/BSData).
  3. Generate a GitHub security token to let the app access GitHub on your behalf.
    • Log in to GitHub and go to Settings -> Developer Settings -> Personal access tokens (https://github.com/settings/tokens).
    • Generate a new token with public_repo and read:org scopes. Take a note of the token.

Download and Install Everything

(Note: On Windows, references to "Google Cloud Shell" below means the "Google Cloud Shell" command line launched from the Start Menu.)

  1. Download and install the Java SE 8 JDK (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
    • You may be able to use the Java 9 SDK - YMMV.
  2. Download and install the GitHub Desktop app (https://desktop.github.com/).
    • Check out the bsdata project. (https://github.com/BSData/bsdata).
    • The root folder you check out into (containing pom.xml) will be referred to as the project folder.
  3. Download and install the Google Cloud SDK (https://cloud.google.com/sdk).
  4. Initialise the Google Cloud SDK (https://cloud.google.com/sdk/docs/quickstarts).
    • You will be presented with a command line after installation, or you can run gcloud init from the Google Cloud Shell.
    • Log in with your Google account.
    • Choose to create a new project (or select a previously created project). This will will be your own App Engine development environment that you can deploy and test on. Make a note of the name.
    • You do not need to configure Compute Engine, it can be skipped.
    • Make sure your App Engine project is alive and well in Google Cloud Console (https://console.cloud.google.com).
  5. Install the Google Cloud Java Components (https://cloud.google.com/sdk/docs/managing-components).
    • From the Google Cloud Shell, run gcloud components install app-engine-java
    • To update the Google Cloud SDK to the latest version, run gcloud components update
  6. Download and install Netbeans Java EE bundle (https://netbeans.org/downloads/).
    • The current version of Netbeans is 8.2, and by default it does not include Maven 3.5. Future versions of Netbeans may change this.
  7. Download and unzip Maven 3.5 (https://maven.apache.org/download.cgi).

Set up the Project in Netbeans

  1. Launch Netbeans
    • Pro tip: If you prefer a dark colour scheme, go to Tools -> Plugins and install "Darcula LAF for Netbeans"
  2. Set Netbeans to use Maven 3.5
    • Go to Tools -> Options, Select the Java section then the Maven tab.
    • Set Maven Home to the directory you unzipped Maven 3.5 into.
  3. Open the BattleScribeData project you checked out from GitHub.
  4. Create a file in the project directory called maven.properties
    • This file should not be checked in to GitHub (it's excluded via .gitignore). It contains Maven settings specific to individual developers.
    • Add the following line:
      appengine.dev.project.name=YOUR_APP_ENGINE_DEV_PROJECT_NAME
      
      (Use your App Engine development project name created when setting up the Cloud SDK above).
  5. Create a file in the <project directory>/src/main/resources/common/java/ directory called github-user.properties.
    • This file should not be checked in to GitHub (it's excluded via .gitignore). It contains GitHub authentication settings that should not be public. If your GitHub authentication token is checked in to GitHub, it will be invalidated and you will need to generate a new one.
    • Add the following lines:
      ## GitHub User ##
      github.anon.username=GITHUB_USER_NAME
      github.anon.token=GITHUB_AUTHENTICATION_TOKEN
      [email protected]
      
      (Use your own GitHub username and token).
  6. Build the project
    • Select the local Maven profile from the "Project Configuration" dropdown at the top.
    • Right-click the project and select "Clean and Build".
    • Wait for Maven to download required dependencies (jar libraries) and build the project.
  7. Run the project locally (appengine:run Maven goal).
    • Select the local Maven profile.
    • Right-click the project -> Run Maven -> appengine:run.
    • Go to http://localhost:8080 to see the app.
    • (The local server is provided as part of the Cloud SDK)
  8. Debug the project locally (appengine:run Maven goal).
    • Select the local-debug Maven profile.
    • Right-click the project -> Run Maven -> appengine:run.
    • The local server will wait listening on port 5005 for the debugger to attach.
    • Go to Debug -> Attach debugger: Connector SocketAttach, Transport dt_socket, Host localhost, Port 5005.
    • Go to http://localhost:8080 to see the app.
  9. Deploy the project to your App Engine development environment (appengine:deploy Maven goal).

A Quick Tour

  • pom.xml in the project directory contains Maven configuration.
    • General app properties, such as name, version, Java version etc.
    • Build profiles which determine app configuration for specific environments.
      • local for running on the local server
      • local-debug for debugging on the local server
      • dev for deploying on your App Engine development environment
      • test and prod are for the main BSData test and live App Engine environments. You will not be able to use these unless authorised.
    • Dependencies - the specific versions of libraries required by the app.
      • Maven will handle downloading and providing the libraries when building and deploying the app.
  • /src/main/resources/ folder contains configuration files for each Maven profile, plus common properties files used by all profiles.
    • .../java/ files are general config used by the java app and are copied into the WEB-INF/classes/ folder upon build/deploy.
    • .../webapp/ files are used to configure the application server and are copied into the WEB-INF folder upon build/deploy.
  • /src/main/webapp/ folder contains the web front end
    • HTML and CSS
    • .../app/ folder contains the Angular Javascript app
  • /src/main/java/ folder contains the back end Java app.
    • rest package contains RESTful web services (https://jersey.github.io/documentation/2.26/jaxrs-resources.html).
      • BattleScribeDataRestConfig.java configures the app and performs startup tasks.
    • viewmodel package contains model classes that are used to pass data between the web services and the Angular front end.
      • These objects are converted to/from JSON to be sent/recieved in web requests/responses.
      • These objects are used by the BattleScribe app and should not be changed without proper planning. Changes could cause problems with BattleScribe reading repository information.
    • model package contains model classes for BattleScribe XML data files and indexes (http://simple.sourceforge.net/download/stream/doc/tutorial/tutorial.php).
    • dao package contains "Data Access Object" classes used used to read/write to data sources.
      • GitHubDao.java is used for communicating with GitHub.
    • repository package contains classes for creating BattleScribe repository indexes (.bsi) files.

aeronautica-imperialis's People

Contributors

amis92 avatar barbramt avatar bsdata-bot avatar bsdataanon avatar davidmunoznovoa avatar evanh avatar guy-markman avatar mad-spy avatar philihp avatar shaner11 avatar shanering11 avatar zopha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aeronautica-imperialis's Issues

Quad Autocannon

Quad Autocannon has wrong stats in Imperial_Navy.cat
0-2-1
2+
not
2-6-0
4+

[Anon] Bug report: Imperial_Navy.catz

File: Imperial_Navy.catz

BattleScribe version: 2.03.01

Platform: Windows

Dropbox: No

Description: The roster editor allows aircraft to be upgraded with more than two aircraft upgrades without showing as invalid. The rules allow for aircraft to be upgraded with a maximum of two aircraft upgrades only.

Needing Asuryani and Adeptus Astartes

I can provide some point numbers for both as I have the new Wrath of Angels kit, but I'm not super confident in the coding part of it to add it all together. I have the full aces card pack for Asuryani too if that will help.

In the core rule book however, the Adeptus Astartes does have a bit of info cards on the planes, but I don't have the full set of cards for Adeptus Astartes.

Let me know if this is possible!

Avenger Strike stats are incorrect

Hi

(and thanks again for making this BS repo)

Avenger Strike Fighter profile is incorrect in BS.

It lists the Avenger Bolt Cannon as 3-7-0 when page 77 of Taros Air War lists it as 2-5-0

It lists the Rear Heavy Stubber as 2-5-0 when it's 1-1-0 in TAW.

spelling mistake

Aircraft is misspelled as Aircarft. This is seen in the ros file XML and in the popup descriptions

Adeptus Astartes: Incorrect stats for Fire Raptor HB turrets

File: Warhammer_40,000_Aeronautica_Imperialis.gstz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: Yes

Description: The stats for the port and starboard Heavy Bolter Turrets are listed in the books as 6-2-0 but in battle scrbe they are 3-1-0. I've check both the Wrath of Angels and Companion books and also the errate on WarCom and can't find anything that stats its 3-1-0

[Anon] Bug report: Ork_Air_Waaagh.catz

File: Ork_Air_Waaagh.catz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: Hello, the mega Bommer is not showing up in list. Not sure if it's broken or absent.

Weapon missing in „Profile summary“

While viewing the roster: "Paired Swiftstrike Burst Cannon" and "Swiftstrike Burst Cannon" are incorrectly combined when "Profile summary" is activated.

Inline Profiles (Note the different FPR Stats):

AI - Inline Profile

Profile summary:

AI - Profile Summary

[Anon] Bug report: Imperial_Navy.catz

File: Imperial_Navy.catz

BattleScribe version: 2.03.21

Platform: Windows

Dropbox: No

Description: Missing Marauder Colossus and Marauder Pathfinder from catalogues. I've submitted anon updates to imperial navy and base with the additions through appspot..

Typos in Asuryani

  • Phoenix Bomber is incorrectly spelled as "Pheonix Bomber" in the selection list. Profile is correct.
  • Phoenix bomber has incorrectly spelled "missile arrary" profile.
  • Holofield has incorrect "successufl"
  • Spirit Stone has incorrect "crashnig"
  • Wrath of Angels is misspelled in the reference as "Warth of Angels".
  • Jink rule should not have a full stop and new sentence at the end "...this move. Nor may this..."
  • In Jin Lyaia's Aces profile, "targeting" is misspelled with at extra t.

Facebook Issues

Issues found by Facebook Community: Edited over time

  • Kustom Big shootas and crews missing for some orks vehicles
  • Issue on fighta bombers with a limitation on weapons (Will be left to Ellie Bennett to fix as requsted by her).
  • Fire arcs on evy bomber, one should be right not left (Will be left to Ellie Bennett to fix as requsted by her).
  • No wing bombs on Fighta Bommer.
  • Forgot to add data for contact.
  • Executioner has crew options.
  • Kustom Big shoota costs 3 not 2.
  • Some side weapons missing their cost

Astartes HK/Krak missiles are not currently supported

When replacing Astartes Rotary Frag Launcher, it does not correctly allow the user to select Krak or HK missiles.

(This is almost certainly a time saving measure but I can't see the feature request so I'm raising it just in case)

RELEASE THREAD: June 2022

Data Developers - Please use this issue to push new releases if doing so via comment.

Explainer

  • Create an issue comment that starts with /release on the first line.
  • Second (non-empty) line will be used as a release title/name.
  • All following lines will be interpreted as a release description/body.
  • Description (even if empty) will always be appended with a comparison link to the previous release, unless there is no previous release.

How to

Add a comment with one of the following to push a release:

For a standard release:

given latest release v2.2.2, will create a release v2.2.3 (increases patch)

/release

This is title of v2.2.3

For a Chapter Approved/Big FAQ initial releases (game-wide updates):

given latest release v2.2.2, will create a release v2.3.0 (increases minor, resets patch)

/release bump=minor

This is title of v2.3.0

For a new game edition:

given latest release v2.2.2, will create a release v3.0.0 (increases major, resets minor and patch)

/release bump=major

This is title of v3.0.0

[Anon] Bug report: Astra_Militarum.catz

File: Astra_Militarum.catz

BattleScribe version: 2.03.25

Platform: Android

Dropbox: No

Description: Valkyrie/vendetta multi laser listed as 0 points. Should be 3.

Ionic Afterburners

All T'au aircraft have the option to take Ionic Afterburners when only the Barracuda should

[Join Request]

Reference contact

No response

Your Discord

@zopha

Additional information

Have worked on the Heresy Data set a long time ago and would like to contribute to a smaller project :) that I can dip in and out of as my free time allows.

[Anon] Bug report: Imperial_Navy.catz

File: Imperial_Navy.catz

BattleScribe version: 2.03.21

Platform: Windows

Dropbox: Yes

Description: Thunderbolt Fury fighter is missing Extra Damage (6+) rule for the Avenger Bolt Cannons. It is still present per the replacement cards included in the GW 7/2 errata PDF.

Ork Looted aircraft and Gue'Vesa Auxiliary aircraft - Companion book

Requested on discord so adding it to track it, published in a White Dwarf.

An Ork force may include one Looted Imperial aircraft for every five Ork aircraft in the force.

  • Looted Thunderbolt
  • Looted Marauder

Tau can also have Human Auxiliary aircraft, not sure if that's implemented yet so adding it as reminder to check and if they need to be added it can be expanded.

  • A T’au force may include one T’au Human Auxiliary aircraft for every five T’au aircraft in the force.

RELEASE THREAD: March 2022

Data Developers - Please use this issue to push new releases if doing so via comment.

Explainer

  • Create an issue comment that starts with /release on the first line.
  • Second (non-empty) line will be used as a release title/name.
  • All following lines will be interpreted as a release description/body.
  • Description (even if empty) will always be appended with a comparison link to the previous release, unless there is no previous release.

How to

Add a comment with one of the following to push a release:

For a standard release:

given latest release v2.2.2, will create a release v2.2.3 (increases patch)

/release

This is title of v2.2.3

For a Chapter Approved/Big FAQ initial releases (game-wide updates):

given latest release v2.2.2, will create a release v2.3.0 (increases minor, resets patch)

/release bump=minor

This is title of v2.3.0

For a new game edition:

given latest release v2.2.2, will create a release v3.0.0 (increases major, resets minor and patch)

/release bump=major

This is title of v3.0.0

XML structure differences between Adeptus Astartes squadron and other squadrons is ros files

Seen:

<force id="8aa8-094d-b410-a28c" name="Squadron" entryId="ffc7-fa84-7076-f008" catalogueId="9826-b91b-6a9d-ca70" catalogueRevision="4" catalogueName="Adeptus Astartes">
  <selections>
    <selection id="7f2c-f8cd-78a1-b150" name="Xiphon Interceptor" entryId="d60f-6e76-fb25-6ee0" number="1" type="upgrade">

Expected:

<force id="c02c-4e33-74ad-4ac1" name="Squadron" entryId="ffc7-fa84-7076-f008" catalogueId="63fd-f1bb-e3ca-e39f" catalogueRevision="2" catalogueName="Astra Militarum">
  <selections>
    <selection id="271b-438f-c9ea-ebdf" name="Valkyrie Assault Craft" entryId="9474-faac-1eb5-889b" number="1" type="model">

The selection element for the Xiphon is a type upgrade where the selection element for the Valkyrie is type model

[Anon] Bug report: Aeldari_Asuryani.catz

File: Aeldari_Asuryani.catz

BattleScribe version: 2.03.15

Platform: iPhone / iPod / iPad

Dropbox: Yes

Description: It has bright lances listed as Ariel attack for all aircraft. Bright lances according to the companion are not aerial unless it is with the Nightshade only. Thanks!

Expanded Ace Abilities - Companion Book

The book lists a series of expanded ace abilities that are optional. This issue will track how we'll add them.

Adding them as a type of Ace Upgrade would be the most straight forward but would it be better have them hidden as default, with a toggle to show them?

New Army - Necrons - Companion book

Cards published on facebook and we should have a little more in the companion book.

Necron Flyers

  • Night Scythe
  • Doom Scythe (upgrade of Night Scythe)
  • Night Shroud
  • Upgrades
    • Galvanised Nanoswarms
    • Translocation Engines
    • Phase Shift
    • Adaptive Cognition
    • Reinforced Necrodermis
  • Aces

Pictures
271846719_4857204517707298_380941960233404323_n
271841557_4857205554373861_5409111227645261716_n

Spelling Errors - Imperial Navy

A few spelling/grammar/typo mistakes as below:

Master navigator upgrade:
Completing is spelt as "comleting"

Flares or Chaff Launcher:
Should say ammo characteristic instead of "armor characteristic"

Aerial Attack Rule:
Against is spelt as "againts"

Lightning Reactions:
Description ends abruptly at "Choose" when clearly it should carry on with the sentence.

Tail Gunner rule:
First sentence says "taking fire phase" when should say "Tailing Fire phase"

Colossus Bomb:
States firepower 4 when it should be 7 as per
https://www.warhammer-community.com/2020/12/15/flight-plan-introducing-the-biggest-bomb-in-the-imperial-navy/

Thanks :)

  • OS: Win
  • BattleScribe version 2.03.21
  • Release version v13

[Anon] Bug report: Imperial_Navy.catz

File: Imperial_Navy.catz

BattleScribe version: 2.03.01

Platform: Windows

Dropbox: No

Description: The rule for Aircraft being able to only take a maximum of 2 Aircraft Upgrades, is on page 65 (Squadron Lists) of the Rynn's World Air War Campaign Rulebook and is under the heading of Aircraft Upgrades...it is written in the last couple of sentences in that section.

Marauder Destroyer Rear Turret

Hi,

The data shows the Marauder Destroyer Rear Turret FPR as 3-2-0 (same as the bomber) but according to the book its 6-3-0.

Thanks

David
MarauderDestroyer

[Join Request] evanh

I'm excited to play with the new Necron faction and I'd like to keep it up to date if I can help.

RELEASE THREAD: May 2022

Data Developers - Please use this issue to push new releases if doing so via comment.

Explainer

  • Create an issue comment that starts with /release on the first line.
  • Second (non-empty) line will be used as a release title/name.
  • All following lines will be interpreted as a release description/body.
  • Description (even if empty) will always be appended with a comparison link to the previous release, unless there is no previous release.

How to

Add a comment with one of the following to push a release:

For a standard release:

given latest release v2.2.2, will create a release v2.2.3 (increases patch)

/release

This is title of v2.2.3

For a Chapter Approved/Big FAQ initial releases (game-wide updates):

given latest release v2.2.2, will create a release v2.3.0 (increases minor, resets patch)

/release bump=minor

This is title of v2.3.0

For a new game edition:

given latest release v2.2.2, will create a release v3.0.0 (increases major, resets minor and patch)

/release bump=major

This is title of v3.0.0

RELEASE THREAD: April 2022

Data Developers - Please use this issue to push new releases if doing so via comment.

Explainer

  • Create an issue comment that starts with /release on the first line.
  • Second (non-empty) line will be used as a release title/name.
  • All following lines will be interpreted as a release description/body.
  • Description (even if empty) will always be appended with a comparison link to the previous release, unless there is no previous release.

How to

Add a comment with one of the following to push a release:

For a standard release:

given latest release v2.2.2, will create a release v2.2.3 (increases patch)

/release

This is title of v2.2.3

For a Chapter Approved/Big FAQ initial releases (game-wide updates):

given latest release v2.2.2, will create a release v2.3.0 (increases minor, resets patch)

/release bump=minor

This is title of v2.3.0

For a new game edition:

given latest release v2.2.2, will create a release v3.0.0 (increases major, resets minor and patch)

/release bump=major

This is title of v3.0.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.