Coder Social home page Coder Social logo

reaktor-birdnest's Introduction

2023 Reaktor Birdnest solution

Submitted as part of an application to the position of developer trainee at Reaktor.

Hosted version will be up at https://reaktorbirdnest.jaspnas.com for a limited time.

Running the project

get certificates from CA (e.g. letsencrypt) or run the following command openssl genrsa -des3 -passout pass:x -out server.pass.key 2048 && openssl rsa -passin pass:x -in server.pass.key -out key.pem && rm server.pass.key && openssl req -new -key key.pem -out server.csr -subj "/C=FI/ST=Turku/L=Turku/O=JaspnasCom/OU=IT Department/CN=reaktorbirdnest.jaspnas.com" && openssl x509 -req -days 100 -in server.csr -signkey key.pem -out cert.crt to generate a self-signed certificate.

Put the cert and key into /root/reaktorbirdnest.jaspnas.com.crt and /root/reaktorbirdnest.jaspnas.com-key.pem

docker compose up -d in the root directory

Description

The project consist of 4 docker containers running on a separate network using Docker compose.

Backend

The backend module updates the database and serves information about drones to clients. It is written in golang.

Frontend

The frontend module is written in react and shows the data fetched from the backend.

Mongo

The project uses mongodb to store drones.

Yxorp

The project uses nginx as a reverse proxy to distribute traffic between the frontend and backend.

Tying it togehter

The frontend first requests data from the backend using a get request to the /api/drones endpoint. After this it connects to a websocket at /api/websocket that continuosly sends all drones caught violating the protected area. The valid (CA-signed) certificates are only stored on the reverse proxy server while backend and frontend use randomly generated certificates.

reaktor-birdnest's People

Contributors

jaspnas 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.