Skip to content

Helix

An online system designed for managing projects. It allows users to create projects, assign code-names, and track their status.

Background

The project takes its name from the breathtaking Helix Nebula, a vast planetary nebula situated in the constellation Aquarius. As one of the closest nebulae to Earth, it’s a favorite among amateur astronomers. Its nickname, the “Eye of God,” has become a popular cultural reference. I chose this name to represent the project’s unique character and theme, echoing the nebula’s beauty and evolution.

Inspired by the nebula’s formation process, the system was designed as a nurturing environment where projects can emerge and flourish. Just as the Helix Nebula’s central star shines bright, this project serves as the central hub for managing all my projects.

At a glance, you should be able to grasp a project’s essence, and then explore deeper to uncover its details. Much like peeling back the layers of the nebula to reveal the central star’s secrets, this project allows for a seamless transition from surface-level understanding to in-depth analysis.

Objectives

The main objective of Project Helix is to develop an online system for managing projects. It allows users to create projects, assign code-names, and track their status.

I have numerous side projects, and as we all know, managing them can be a pain. I wanted to create a simple, yet elegant, system that would allow me to keep track of all my projects in one place.

Furthermore, I’ve always loved the idea that a project must have a code name, it gives the project character and establishes a certain ethos, which should automatically be adopted by whoever works on the project. I also wanted to be able to track the status of each project, glance at a project and quickly derive the information I need, such as which projects are in progress, which were completed and which were on hold.

Initially, I was using a Microsoft Excel sheet to manage my projects, but I found it to be clunky and not user-friendly. I wanted to create a system that was easy to use and would allow me to quickly add, update, and delete projects.

I investigated what software was available in the market, and even tried out a few different ideas on project board systems, like Trello, which worked well, but lacked the level of information I wanted to store for each project. This included not only task tracking but also the technical documentation and designs for each project.

I decided to build my own system using technologies I was already familiar with, including Angular, AWS Lambda, and Amazon DynamoDB. I also wanted to use GoLang for the application’s back-end functionality. The result was Project Helix. I’ve used it for quite a while, but I’ve systematically migrated all of my projects to GitHub and GitHub Projects.

Technology Stack

  • Front-end: Angular
  • Back-end: AWS Lambda Serverless Functions
  • Database: Amazon DynamoDB
  • Document Storage: Amazon S3
  • Programming Language: GoLang and TypeScript
  • Version Control: Git
  • CI/CD: GitHub Actions
  • Security: Amazon S3 Bucket Policies, and various other pieces of AWS security infrastructure.
  • Hosting: Amazon S3 and CloudFront
  • Documentation: Asciidoc

Features

Project management

Users can create projects, assign code-names, track their status and manage documentation associated with the project.

Project boards

Users can view a board of all their projects, which contains various informational items about each project.

Document storage

Users can store the technical documentation and designs for each project.

Security

The system is secure, with access restricted to only the right people.