Awards & Nominations
Diana has received the following awards and nominations. Way to go!
Diana has received the following awards and nominations. Way to go!
A distributed-network based application for real-time collaboration on the Moon and on the Earth! Does your lunar mission need to keep track of multiple logs, inventory, and people? DIANA is an all-in-one platform in which astronauts can organize their data collectively, while people on Earth are updated with the latest events.
WE ARE GOING BACK TO THE MOON! The Artemis’ missions will gradually bring people to Earth’s natural satellite.
As the project progresses, hundreds of people (astronauts, scientists, engineers, researchers, …) are going to be working together.
Therefore, a new problem appears: How to organize all the data being generated in these missions, so that it can be safely and efficiently used by everyone involved?
New frontiers are the place for new challenges! Our team developed a full application that helps the crew of these missions to store and organize their data, while people on Earth can review and perform analysis.
The solution we’ve developed is D.I.A.N.A: A Distributed and Integrated Access Network Application
It’s a digital platform in which each person involved in the lunar mission can sign up to cooperate.
We have 3 different user’s roles:
During the mission, samples will be collected, hardware will be used and spacewalks will need to be logged. In order to store all this data while also keeping everyone in touch, our solution uses a decentralized-network (peer-to-peer) based architecture, making use of the InterPlanetary File System (IPFS). With this model, everyone connected to the same network represents a node that can hold data and communicate with others. This way, our application is serverless, and this brings multiple benefits:
Backend
The backend of the application was built using the OrbitDB library (based on IPFS), which provides a handful of different databases to use on the project.
The communication with the frontend was made through a custom javascript API, developed with ExpressJS which is a web server framework for NodeJS.
Frontend
The frontend application was built based on ReactJS, which is a javascript framework for quickly developing browser applications.
All the screens use HTML and CSS for their structure and styles, and for more visually complex components, Material UI was the go-to option.
The communication with the backend API is performed using REST requests through Axios, and frequent polling from the server guarantees that the client’s information is always up-to-date.
Authentication
A simple Sign In and Sign Up system was developed for user identification on the platform.
Create a Mission
At this screen, a new Lunar Mission can be created and its crew assigned (user with an Astronaut Role that can be allowed on the mission).
Main Dashboard
This is the main view for a user on the platform. Here, it's present the most important information, and some quick access to other pages as well. On this page a user can:
Peers List
At this screen, the user can check all the latest samples collected by the crew. Here there is a quick way for accessing other peers information.
Call for Help
We all know that accidents can always happen, especially in a hostile environment like it's in Earth's natural satellite. This screen presents a fast possible way of calling for the help of the crew if anyone is in need.
Add a Sample
This page's objective is to provide a system for the mission's crew to input samples on the platform. They can upload information like Name, Description, and Additional Sample Data (Photo, Video, or Audio).
According to the challenge description, it was not necessary to use real mission data to demonstrate how our application works. However, in order to have a knowledge base about lunar missions and which samples are usually collected on them, we used some information contained on the website Apollo in Real-Time. And we also got some references from NASA’s presentation “LunaNet: A Flexible and Extensible Lunar Exploration Communication and Navigation Infrastructure”.
Our experience with Hackathon Space Apps 2021 started with the choice of the challenge. We used the Decision Matrix methodology, in which we analyzed three challenges, using the following criteria:
For those three challenges, scores from 1 to 5 were assigned for each criterion. In the end, the one with the highest score would be chosen. In this case Lunar Surface Operations: Real-Time Collaboration. More than just theoretical criteria, we were excited to work on this project, because we grew up listening to the stories of the Apollo Missions and how humanity managed to go to the moon.
With the theme defined, we started the planning phase of our application. To conduct meetings with team members, we used the Discord and Google Meets platforms. At Miro, we brainstorm some ideas. while using Figma, for the designs of pages for D.I.A.N.A.
Our brainstorming at Miro:
With all ideas organized, it was time to develop the JavaScript codes in VS Code. This was the stage that we encountered the most difficulties because some of our members were not familiar with this programming language. To solve this problem, we resorted to some sites on the internet that indicated the commands needed to perform the actions we wanted, such as the CSS-Tricks. Finally, we put together a presentation on Canva for our final project video. In order to create a live demo, we hosted our project from Github's main branch as a Heroku app.
Check our presentation on Canva ->
Check our design process on Figma ->
It is clear, therefore, that despite the activities having been carried out remotely, our experience at Hackathon was very fruitful. Our project covered several areas, such as managing teamwork, designing for websites and presentations, as well as the programming part.
Apollo in Real-Time - details about the samples collected and data from the flight including (audio, images, and reports).
LunaNEt - as D.I.A.N.A is based on distributed data, the reference from LunaNET as a comparison.
EVA Task Console Log Demo - As users update data and notes, the tasks should be updated and be presented in the mission log. The mission console log in DIANA was inspired by the video.
Handwritten log - In the past, the logs were handwritten and it was a limitation to that information in a number of people and time. DIANA would limit the access only by its user credentials, so all the information that one user needs would be available.
As the mission occurs, the status is updated so the peers online can have access to its data and situation. It also improves real-time communication as the peers can always be informed. These journals inspired the communication feature in D.I.A.N.A.
Miro - the first drafts and detailing of the challenge chosen were done in Miro.
Figma - each page on DIANA was first designed at Figma. Also, the path to each page and the flowchart to each process that was considered: creating an account; creating a mission; uploading data; reporting a problem; choosing data to access by a peer, last updated, and By mission. Also, the project logo was designed using Figma.
VS Code - the code drafts in Javascript, HTML, and CSS were written on VS Code. Node js, npm were used to support the code.
Canva - the demo presentation was made in Canva.
Heroku - a cloud platform as a service (PaaS) in which D.I.A.N.A.
Google Meet and Discord - real-time communication tools that were used by D.I.A.N.A developers.
#Artemis, #Lunar, #IPFS, #software, #decentralized
This project has been submitted for consideration during the Judging process.
As astronauts collect data on the Moon, NASA and the worldwide scientific community will be documenting and reviewing the information in real time. Your challenge is to create an application to allow NASA flight controllers and the broader scientific community to collaborate and compare notes on lunar mission data as it is collected.

