spacecraft-backend-v2
v1.0.3
Published
Backend voor ruimtevoertuigbesturing
Readme
Spacecraft Control Panel
Dit is een webapplicatie die dient als een bedieningspaneel voor een ruimtevoertuig. Via deze interface kunnen gebruikers de status van het ruimtevoertuig zien, acties uitvoeren zoals het refuelen van het voertuig, het in- en uitschakelen van sensoren, en het instellen van de stroomstatus.
Features
- Status van het ruimtevoertuig: Weergave van de huidige snelheid, brandstofniveaus, en stroomstatus.
- Acties: Voer acties uit zoals het refuelen van het voertuig, het in- en uitschakelen van sensoren, en het wijzigen van de stroomstatus.
- Real-time updates: De status van het ruimtevoertuig wordt automatisch bijgewerkt na elke actie.
Technologieën
- Frontend: HTML, CSS, JavaScript (met moderne ES-modules)
- Backend: Node.js, Express.js
- Database: In-memory (voor de status van het ruimtevoertuig)
- Pakketbeheer: npm voor afhankelijkheden
- Middleware: body-parser voor het verwerken van JSON- en URL-encoded verzoeken.
Installatie
Stappen om het project lokaal in te stellen:
Clone het repository:
git clone https://github.com/jouw-gebruikersnaam/spacecraft-control-panel.git cd spacecraft-control-panelInstalleer de afhankelijkheden:
Zorg ervoor dat je Node.js en npm geïnstalleerd hebt. Voer de volgende opdracht uit om de benodigde afhankelijkheden te installeren:
npm installStart de applicatie:
Start de server door het volgende commando uit te voeren:
npm startToegang krijgen tot de applicatie:
Nadat de server is gestart, kun je de applicatie openen in je webbrowser door naar
http://localhost:3000te gaan.
Bestandenstructuur
spacecraft-control-panel/
├── public/ # Alle statische bestanden (HTML, CSS, JS)
│ ├── index.html # De hoofdpagina van de webapp
│ ├── styles/ # Bevat CSS-bestanden
│ └── scripts/ # Bevat JavaScript-bestanden
│ ├── scripts.js # JavaScript-logica voor het bedieningspaneel
│ └── index.js # Eventueel extra logica voor de frontend
├── spacecraft-utils/ # Extra functies voor de simulatie van het ruimtevoertuig
│ └── index.js # Functies voor sensorwaarden en materiaal simulatie
├── app.js # Backend Express.js server configuratie
├── package.json # npm configuratiebestand
└── README.md # Dit bestandGebruik
Status van het ruimtevoertuig
Op de hoofdpagina van de webapplicatie wordt de huidige status van het ruimtevoertuig weergegeven. Dit omvat:
- Snelheid: De huidige snelheid van het ruimtevoertuig.
- Brandstof: Het huidige brandstofniveau van het voertuig.
- Stroom: De huidige status van de stroom (ON of OFF).
Acties
Via de interface kunnen de volgende acties worden uitgevoerd:
- Refuel: Voeg brandstof toe aan het ruimtevoertuig door een waarde in te voeren in het invoerveld en op de "Refuel" knop te klikken.
- Set Power: Zet de stroom van het voertuig aan of uit door een keuze te maken uit een dropdown en de knop "Set Power" in te schakelen.
- Schakel sensor in/uit: Schakel sensoren in of uit door een keuze te maken uit de beschikbare sensoren.
- Bewegingsacties: Beweeg het voertuig vooruit of achteruit, of zet het voertuig in slaapstand.
- Draaien: Zet het voertuig in een draaibeweging.
Elke actie stuurt een verzoek naar de backend die de status bijwerkt en een bericht retourneert dat aangeeft of de actie succesvol is uitgevoerd.
Backend Logica
De backend is een Express.js-server die luistert op poort 3000. De status van het ruimtevoertuig wordt in geheugen opgeslagen en kan worden opgevraagd via de route /status. Acties worden uitgevoerd via de route /action, waar de actie en bijbehorende details (zoals sensornaam of brandstofhoeveelheid) naar de server worden gestuurd.
Middleware
De applicatie maakt gebruik van de body-parser middleware voor het verwerken van JSON- en URL-gecodeerde verzoeken.
Toekomstige Verbeteringen
- Persistente opslag: In plaats van de status in geheugen op te slaan, kan een database worden toegevoegd om de status van het ruimtevoertuig persistent te bewaren.
- Gebruikersauthenticatie: Voeg een systeem voor gebruikersauthenticatie toe om toegang te verlenen tot de bedieningselementen van het ruimtevoertuig.
- Uitgebreide simulatie: Voeg meer geavanceerde simulaties toe, zoals het weer of interacties met andere ruimteobjecten.
Licentie
Dit project is gelicenseerd onder de MIT-licentie - zie het LICENSE bestand voor meer informatie.
