Ever since NASA announced the media library I thought of creating a moment in space and able to share it with my friends, those having the same interest. Being a technology savvy, using a couple of tools, I built the application which is close to what I envisioned? I thought of sharing that experience that I had while building it. I created a project plan in JIRA around the core functionalities that is to search for my favorite planets Earth, Sun and the moon. Created an Angular Frontend application that calls the NASA image REST api. This Frontend talks to dotnet core Backend through an API gateway. Once I get the images from source, I then categories it, an option to make a video to build a moment and share it with a group.

To build this, I had to first upgrade my laptop with minimum 8GB RAM and install tools, editors, framework, and libraries. I develop using Visual Studio Code IDE, using C# as the primary language for backend. In Frontend, Angular App, I have a login page using JWT authorization. Once user logs in, user will be presented with a search box. There is a page to add categories, the images that user selects can be push to any of the predefined categories. I thought of developing this entire application in a microservice driven approach so I sub divided these into AuthServer, Users, Categories, Moments and a Gateway. All these services are dockerized and tested locally.

Next, I hosted these services in Heroku, using Circle CI pipeline, GitHub Action. The database for these services is in Mongodb and MySQL. Now my real intention is to get along with Machine learning hype that’s happening and create a defined roadmap to become a data scientist. As of now along with my full time job, I invest sometime in continuous learning in Python & Machine Learning. So far I have completed a courseera session on Neural Networks and following fastai library MOOC to continue my learning on machine learning. My Plan is to create a model that will automatically categories the planets and create moments videos in my app.

I haven’t spent much on the IT infrastructure to maintain the application, there were a few failures and I had to spent time to experiment on a few concepts and technology stack. I will share my failures as I go along this blog series and would like to document it so that I could gauge my learning and idea to implementation. Initial setup was quite a bit faster as I knew dotnet development, later completing the full stack engineering certification I thought of implementing it in my application development. The project structure was changing quite often due to the packaging and distribution using dockerized containers. After a few development cycles, I was able to form a schedule to manage my time along with my professional experience.

Now, I am learning MERN, Python, fastai and Kubernetes to form automated “Dream Ops” where the time taken from idea to implementation and cost of IT infrastructure should be minimal. The application should talk about the failures and the healing process is taken care automatically. I am also attaching a video of my lab, it gives a brief on my local and cloud setup.

A walk around my lab: