Coder Social home page Coder Social logo

dexit / controlcenter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vatsim-scandinavia/controlcenter

0.0 1.0 0.0 14.6 MB

Training Management System created by VATSIM Scandinavia

Home Page: https://cc.vatsim-scandinavia.org

License: GNU General Public License v3.0

Shell 0.14% PHP 62.51% Vue 0.05% Blade 37.05% Dockerfile 0.24%

controlcenter's Introduction

Control Center

Training Management System created by Daniel L. (1352906), Gustav K. (1262761) and others from Web Department at VATSIM Scandinavia. Running using Laravel 9 in a pre-built Docker container.

๐Ÿ“ The project is open source and contains some restirctions. Read the LICENSE for details.
๐Ÿ‘๏ธ Remember to watch this repository to get notified of our patches and updates!

Picture of Control Center dashboard

Prerequisites

Docker (Recommended)

  • A Docker environment to deploy containers. We recommend Portainer.
  • MySQL database to store data.
  • Preferably a reverse proxy setup if you plan to host more than one website on the same server.

In the instructions where we use docker exec, we assume your container is named control-center. If you have named it differently, please replace this.

Manual (Unsupported)

If you don't want to use Docker, you need:

  • An environment that can host PHP websites, such as Apache, Ngnix or similar.
  • MySQL database to store data.
  • Comply with Laravel 9 Requirements
  • Manually build the composer, npm and setting up cron jobs and clearing all caches on updates.

Setup and install

Upgrading from to v4 from v3? Read the UPGRADE.md instead for details.

To setup your Docker instance simply follow these steps:

  1. Pull the ghcr.io/vatsim-scandinavia/control-center:v4 Docker image
  2. Setup your MySQL database (not included in Docker image)
  3. Configure the environment variables as described in the CONFIGURE.md
  4. Start the container in the background.
  5. Setup the database.
    docker exec -it control-center php artisan migrate
  6. To ensure that users will not need to log in after each time you re-deploy or upgrade the container, you need to create and store an application key in your environment and setup a shared volume.
    docker exec -it control-center php artisan key:get
    docker volume create controlcenter_sessions
    Copy the key and set it as the APP_KEY environment variable in your Docker configuration and bind the volume when creating the container with controlcenter_sessions:/app/storage/framework/sessions.
  7. To keep uploaded files between deployments, you need to bind this to a host folder, such as /YOUR/HOST/LOCATION:/app/storage/app/public/files, and set correct permissions of this folder.
    docker exec -it control-center chown -R www-data:www-data /app/storage/app/public/files
  8. Setup a crontab outside the container to run * * * * * docker exec --user www-data -i control-center php artisan schedule:run >/dev/null every minute. This patches into the container and runs the required cronjobs.
  9. Bind the 8080 (HTTP) and/or 8443 (HTTPS) port to your reverse proxy or similar.

Configuring

To have Control Center reflect your division correctly, you need to do some tweaks.

  • Give your user admin access
    docker exec -it control-center php artisan user:makeadmin
  • You can now access Administration -> Settings in the menu to tweak the most basic settings for your division.
  • You are also required to configure logic and datasets in the MySQL database as described in CONFIGURE.md with examples

Using the API

Control Center has an API that you can use to fetch useful data from the database. Read more in the API documentation.

Present automations

There's quite a few automations in Control Center that are running through the cron-jobs. They're as follows:

  • All trainings with status In Queue or Pre-Training are given a continued interest request each month, and a reminder after a week. Failing to reply within two weeks closes the request automatically.
  • ATC Active is flag given based on ATC activity. Refreshes daily with data from VATSIM Data API. It counts the hours from today's date and backwards according to the length of qualification period.
  • Daily member cleanup, if a member leaves the division, their training will be automatically closed. Same for mentors. Does not apply to visitors.
  • Other misc cleanups

Contributing, conventions and intro to Laravel

Do you want to help us with improving Control Center? Curious about whether we use testing? Stylistic choices?
Read the CONTRIBUTE.md for details.

controlcenter's People

Contributors

blt950 avatar gustavkauman avatar huijaaja42 avatar matanbudimir avatar thor avatar marko259 avatar dependabot[bot] avatar renovate[bot] avatar devhazz avatar tszczypinski6 avatar

Watchers

 avatar

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.