## Inspiration For this project, we had two very different sources of inspiration. For our backend, we were inspired by the possibilities that Hedera offered, as well as more modern integration for technologies like non-fungible tokens (NFTs) such as those found on Twitter. For our front-end demo, we were inspired by the chrome extension Momentum, as we wanted to give our users a refreshing and recent view of the cosmos. With the recent launch of the James Webb telescope, these high-quality images unfathomably far away from our planet are more prolific than ever, and we wanted to provide easy access to these sights.
What it does
Our project mainly centers on the storage and use of these brief glimpses into our cosmos. We allow the user to mint their own NFT on a personalized blockchain in seconds, adding it to the IPFS and allowing it to be used with any application integrating the technology. The IPFS allows people to store and access their favorite pictures with less stress about storage space and harddrive failure. It also allows them to create unique profile pictures through Twitter, showing off their favorite photo to all of their followers. Through our google chrome extension we also offer a vision of things to come, as we demonstrate the sheer ease of access brought about by this implementation.
How we built it
We used a wide variety of API calls in this project, and as such our technologies range from Python to CSS. For any single user request, we first run a python script that calls the APOD API published by NASA, which gives us the photo for that day. We then run a JavaScript file that uses the Go-IPFS API to generate a hash for the photo based on the filename, the user’s file directory, and other factors per IPFS standards. We then pass this hash to a Java file which uses the Hedera API, implemented through Gradle, to create a local blockchain, mint the NFT, and transfer it to the user’s account. Additionally, the demo for this project is a chrome extension, utilizing this format’s required HTML, CSS, and JavaScript files. The version control for this project was managed through GitHub, and VSCode was used to support these many different file types.
Challenges we ran into
The primary challenge we faced was that of technology conflicts. Each API we used and standard we had to adhere to required different languages, leading to a list of technologies that became more and more difficult to synchronize together. In particular, the limitations of the google chrome extension format made it so that we were unable to link the extension to the NFT creation and picture acquisition process. While shared mediums like writing and reading to text files helped to somewhat alleviate these challenges, the scope of this project ended up being larger than we had initially intended.
Accomplishments that we're proud of
We are extremely happy with the end result we produced, and believe that our project provides a much more accessible way for the average person to interact with the complex blockchain environment. We had never dealt with such a large list of technologies before, and feel that we did an excellent job integrating them together despite the setbacks mentioned previously. We also were able to practice and develop proficiency in some smaller details of programming along the way, like the minutiae of the command line and git commands, setting PATH variables, and working with version control software on a bigger and extremely active team.
What we learned
We all learned a lot about the various technologies we used throughout this process. We each had experience in different areas of the projects, and were able to work collaboratively to shore up each other’s weak spots and learn more about these languages. We also learned about the importance of identifying technological conflicts before beginning to write code, as well as choosing a tech stack with more documented compatibility. We also learned a lot about the technologies that fuel ideas like blockchains and NFTs.
What's next for Capturing Space
Going forward with this project, we hope to increase the ease of use and accessibility of our application. Successfully integrating the google chrome extension into our backend would be a big step in the right direction for this goal, as the user could much more passively view these photos. Beyond this, we would like to continue to integrate backend technologies together so that a single click can take the user from picture to NFT. We would also like to implement functionality for users to change photos every time they open a new google tab, with a database being used to store past pictures to make this a possibility.
Log in or sign up for Devpost to join the conversation.