/telestion-project-template

A template for Telestion applications

Primary LanguageShellMIT LicenseMIT

Telestion Project Template

This is a template for Telestion projects. It provides the boilerplate code so can instantly start to develop your groundstation.

Setup

For a more in-depth guide on how to start a new project, take a look on our developer documentation.

Via GitHub

First, press the Use this template button.

github-use-this-template

Now, GitHub asks you some required information. Select a suitable user/group and give the repository a meaningful name.

Next, select your repository's visibility. When you're happy with your information, press the Create repository from template button.

github-create-repo

Now, go to the Actions Tab in the GitHub UI and choose the Initialize Action. Then click Run workflow and enter your preferences like so:

Screenshot_20210427_091359

It is recommended to follow Maven Central groupId naming conventions, e.g. beginning with the company url in reverse.

Let GitHub Actions initialize your project.

Manually

  1. Create a new and empty git repository:

    mkdir my-telestion-project
    cd my-telestion-project
    git init
  2. Fetch the changes from this template:

    git fetch --depth=1 -n "https://github.com/wuespace/telestion-project-template.git"
  3. Create an orphaned commit to start from there:

    git reset --hard "$(git commit-tree FETCH_HEAD^{tree} -m "feat: Initial commit")"
  4. Run the initialize script:

    ./scripts/initialize.sh
  5. Commit your changes as suggested by the script:

    git add .
    git commit -m "feat: Initialize project"
  6. (Optional) Add a remote repository where you can push your project:

    git remote add origin "git@gitlab.com:your-name/my-telestion-project.git"
    git branch -M main
    git push -u origin main

This repository

The overall file structure of this monorepo looks like this:

.
├── .github
│   ├── workflows (CI configuration)
│   └── dependabot.yml (Dependabot config)
├── application
|   ├── conf (the verticle configuration for the Application)
|   ├── src (the source files of the Telestion Application)
|   ├── Dockerfile (the definition to successfully build a Docker image from the compiled Application sources)
|   ├── build.gradle (manages dependencies and the build process via Gradle)
|   ├── gradle.properties (contains the required tokens to access required dependencies)
|   ├── gradlew (the current gradle executable for UNIX-based systems)
|   └── gradlew.bat (the current gradle executable for Windows systems)
├── client
|   ├── public (template webpage folder where React will engage)
|   ├── src (the source files of the Telestion Client)
|   └── package.json (manages dependencies and the build process via npm)
├── CHANGELOG.md (DON'T TOUCH! Automatically generated Changelog)
├── README.md (you're here :P)
├── project.json (contains the current project information like the current version etc.)
└── telestion-application (DON'T TOUCH! Used as an indicator for our automation tools)

The Application and the Client folders contain their own README.md that describe the different parts more specific.

Contributing

For the documentation on contributing to this repository, please take a look at the Contributing Guidelines.

Contributors

Thank you to all contributors of this repository:

Contributors

Made with contributors-img.

About

Belongs to Telestion, a project by WüSpace e.V..