This project is built as (self)tasked in the course PROG2005 Cloud Technologies for the Spring 2021 Semester. The project is suggested to be available as open source, for further work from external contributors after the project period has ended. This application is based IPFS (InterPlanetary File System), and is intended to be used by paragliders to share flight-info with each other, completely decentralized. The application in the current state is entirely backend-focused and is written in golang. Paraglider-flight files (in standardized format ".igc") are intended for sharing on a peer-to-peer basis.
This project is directly forked from the go-implementation of IPFS - located at go-ipfs
All licenses and dependencies from the original project has been preserved.
Further Project Progress Documentation is located further down in this README.
The program is directly based on IPFS, and all features from the go-implementation of IPFS (go-ipfs) is still operational. Additional features (as described in the project description) include:
- Uploading and downloading files is exclusive for files of the .igc-format (standardized file-format for paragliding flight-information)
- Running the program initiates 3 PGFS-nodes for testing-purposes
- Mother-node (main server bootstrap-node) is located on the internal NTNU-network. In practice, this means the program only works internally in the NTNU institutional network. To use your own server-node (for further development purposes), the bootstrap-node must be updated to coincide with your own server-node.
This project is planned to be dockerized closer to due-date. More information coming soon!
- Brief description - may be redundant, as it is mostly stated in the project description and feature-set.
- Here goes what has been implemented, what has the group learned from the experience?
- Here goes issues - what was hard (getting to know IPFS on a deep level was both challenging and rewarding + took a lot of time (way more than expected in the proposed timeframe), write a paragraph or two on this)
- Some platform issues, we are a diverse group in terms of preferred OS. 1x Linux, 1x Windows, 1x macOS.
- Here goes aspects of the project the group deemed most challenging.
- What did we learn? IPFS being the obvious answer, but it may be worth adding stuff like interrogating a foreign repository to make it fit specialized needs.
For this project, a high focus on collaboration has been prioritized. For every week of the project period, the group has had 6-10 hours of collaborative work (usually 2-3 sessions per week). The sessions have mostly happened physically (on campus) and each session usually has had a specific purpose (some sprints, some commune problem solving). In addition to these teamwork-sessions, we also split some work, to increase the learning-outcome per individual group member. ----put some more later, but ground work has been laid ;)
Authored by
Yoav Weber
Milosz Antoni Wudarczyk
Kristian Amundsen Øhman-Norén
2021, Norwegian University of Science and Technology