Three-Project Series

Image Hosting in Go you own this product

prerequisites
Basics of Go • Basics of HTTP applications • Basics of SQL
skills learned
Building a web application • Implement authentication using GitHub OAuth provider • Store data in an SQLite database • Store data in an open source object storage service, MinIO • Execute external commands and use pipes to communicate with the command
Amit Saha
3 weeks · 3-5 hours per week average · BEGINNER

pro $24.99 per month

  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose one free eBook per month to keep
  • exclusive 50% discount on all purchases

lite $19.99 per month

  • access to all Manning books, including MEAPs!

team

5, 10 or 20 seats+ for your team - learn more


Become a software engineering expert at Echorand Corp., a thriving analytics company, in this series of hands-on liveProjects. Gain practical experience by creating a cutting-edge image-hosting web application from scratch. You’ll go hands-on to build an independent hosting service, ensuring your customers' data remains secure on your infrastructure alone—no more reliance on third-party providers.


Using the powerful Go programming language, you'll dive into the development process. Learn how to implement seamless authentication using GitHub as the trusted OAuth provider. Harness the capabilities of MinIO, an open source object storage server, to efficiently store and manage your customers' images. Plus, you will enhance the user experience by generating dynamic thumbnails using external programs and utilizing SQLite, a lightweight and serverless SQL database, to handle crucial application data. By the end of this liveProject series, you'll have the skills and confidence to build your own robust image-hosting service.

These projects are designed for learning purposes and are not complete, production-ready applications or solutions.

For those looking to begin learning about this technology or wanting to apply their theoretical studies in a practical setting, this project offers valuable start-learning opportunities. This project provides hands-on experience in working with the language, allowing individuals to gain practical skills and knowledge that can be applied in a variety of scenarios.

Mohammad Kouchi, Engineering manager, Mofid Securities

here's what's included

Project 1 Authentication with GitHub

In this liveProject, you’ll dive into the software engineer role at Echorand Corp., a leading analytics company. Echorand Corp wants to offer its customers the opportunity to host images, so they’ve turned to you. You’ll build an impressive web application using the Go programming language using GitHub as the OAuth provider. You’ll implement secure authentication, providing users with a seamless login experience, and manage application state effortlessly using SQLite.

Project 2 Web Application Form Uploads

In this liveProject, you’ll take on the role of a software engineer for Echorand Corp tasked with implementing image-hosting capabilities for their new platform. You’ll make full use of the Go standard library to write a web UI that can upload images once they are authenticated, then add SQLite support for storing image metadata. Finally, you’ll update the web app so your users can see their newly uploaded images in all their glory.

Project 3 Generate and Store Thumbnails

In this liveProject, you’ll tackle an important job for Echorand Corp, a data processing company that offers image-hosting services. Echorand’s image-hosting app needs the capability to produce thumbnails for all the uploaded images, so they’ve turned to you. Your challenge is using Go to implement the thumbnail creation features. You’ll need to create a new table to store the association between the original image and their thumbnail, then set up functionality so the original image will be downloaded when users click the thumbnail.

book resources

When you start each of the projects in this series, you'll get full access to the following book for 90 days.

choose your plan

team

monthly
annual
$49.99
$499.99
only $41.67 per month
  • five seats for your team
  • access to all Manning books, MEAPs, liveVideos, liveProjects, and audiobooks!
  • choose another free product every time you renew
  • choose twelve free products per year
  • exclusive 50% discount on all purchases
  • Image Hosting in Go project for free

If somebody is looking to enhance their GO skills, they will definitely buy it. that is why I enrolled in the project in the first place.

Mavendra Singh, Staff Engineer, Raksul

project author

Amit Saha

Amit Saha is a software engineer at Atlassian in Sydney, Australia. He’s the author of Practical Go: Building Scalable Network and Non-Network Applications (Wiley, 2021), Doing Math with Python: Use Programming to Explore Algebra, Statistics, Calculus, and More! (No Starch Press, 2015), and Write Your First Program (PHI Learning, 2013). His other writings have been published in technical magazines, conference proceedings, and research journals. He can be found online at https://echorand.me.

Prerequisites

The liveProject is designed for intermediate-level programmers proficient in the Go programming language. While some familiarity with writing SQL statements and working with SQL databases is helpful, resources will be provided to help you get up to speed if needed.


TOOLS:
  • Basics of Go
  • Basics of SQL

TECHNIQUES
  • Basics of packaging
  • Understanding databases and writing SQL queries

you will learn

In this liveProject series, you’ll learn to use the Go standard library to create a web application complete with authentication, image hosting, and thumbnail generation capabilities.


  • Write web applications using the Go standard library package.
  • Implement authentication using GitHub as the OAuth provider
  • Manage application state in a SQLite database
  • Read form upload data using standard library packages
  • Interact with an object storage service, MinIO, using the Go Cloud
  • Development Kit Blob package
  • Upload objects and generate signed, time-limited URLs for sharing
  • Execute external commands, providing input data as bytes and reading the output back as bytes using the standard library

features

Self-paced
You choose the schedule and decide how much time to invest as you build your project.
Project roadmap
Each project is divided into several achievable steps.
Get Help
While within the liveProject platform, get help from other participants and our expert mentors.
Compare with others
For each step, compare your deliverable to the solutions by the author and other participants.
book resources
Get full access to select books for 90 days. Permanent access to excerpts from Manning products are also included, as well as references to other resources.