3 min read

Building MemUI - Creating OpenSource Go Project - Full Tutorial

Building MemUI - Creating OpenSource Go Project - Full Tutorial
Go-lang MemUI Project: Step-by-step video tutorial series

Hello 👋đŸŧ Welcome to the MemUI Project. This project is my first public attempt to build a project in public and provide an end-to-end tutorial series about the development process — from the idea review to the development, release, and documentation.

The tutorial consists of blog posts, video materials, and the source code itself. This page contains links to all resources.

Why MemUI? Because it is simple. I wanted to start with something small to cover the end-to-end process and make it to the first release, even if it is an MVP and not production-ready.

My goal is to have more full tutorials about the end-to-end development of software projects and applications. You can read more about this here 👉đŸŧ About CoderVlogger.

Current Status: In Progress. This page will be updated with more information.

Course Page

The following link contains the most recent course materials with all end-to-end steps and tutorials:

Building MemUI: Experimental Open Source Go-lang Project
visit the course page at store.CoderVlogger.com


This section explains the content of this tutorial and how to use it.

How to use this tutorial?

❌ Source code; ❌ Video tutorial;
  • What can you learn from this tutorial?
  • Requirements;
  • Tutorial's structure:
  •  - How to use Git and Git branches for tutorial's source code;
  • Other related materials;

Project Setup and First Steps

Create the project's repository and set up a new Go package. Then, we will write the initial version and introduce a test application for manual tests.

✅ Source code; ✅ Video tutorial;
  • Overview and Project's Repository;
  • Idea Review and Preparation;
  • Naming and GitHub Repository;
  • Idea review and Preparation;
  • The initial version, Go package (go mod), and test app:
  •  - Project as a package;
  •  - Go mod replace directory;
  •  - Test app and local manual testing;

Public API and Reflection

We will create an MVP (minimum viable product) version of the project and its public API. Additionally, we will limit the accepted objects by checking their kind with the reflection.

✅ Source code; ✅ Video tutorial;
  • Defining public API;
  • Accept only pointers by using reflection;

HTTP Server and JSON Viewer

This section is all about "UI" in MemUI 🙂 For the initial version, the "UI" will be auto-generated JSON content. We will make it accessible via the HTTP server.

✅ Source code; ✅ Video tutorial;
  • Serve an HTTP server with a standard net/http package;
  • Index API to list all internal types;
  • Explore API to list all objects for a selected type;
  • Marshal to JSON;
demo of the result by the on of this section

Testing and Project Artifacts

In this part, we will introduce unit tests and some additional automation, which will help us maintain high coding quality.

✅ Source code; ✅ Video tutorial;
  • Unit tests;
  • Linter for Go project;
  • Makefile with some base targets;
  • The initial version of the README;
  • Testing: introduce initial testing strategy:
  •  - Test the core Go implementation with table tests;
  •  - Using two approaches for table-driven tests (reference article);

Coming Soon

At the moment, this tutorial is in a work in progress state. However, you can find some ideas for future topics in the following sections.

This post is for subscribers only