External APIs

GitHub Sign-In Application you own this product

This project is part of the liveProject series Go and External APIs
prerequisites
advanced Go • programming language basics • packaging basics • HTTP application basics
skills learned
work with Go standard library packages, GitHub OAuth, HTTP cookies in Go, and HTTP cookies in Go
Amit Saha
1 week · 2-4 hours per week · 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


Look inside

Echorand Corp., a growing analytics company, uses the GitHub hosting service for its software hosting and collaboration needs. But the company has received feedback voicing concerns about the service’s lack of backup functionality. As a software engineer, it’s up to you to solve this problem. You’ll use Go to build a web application that allows users to log in using their GitHub credentials and access the GitHub API using OAuth authorization. You’ll create HTTP client middleware for writing and performing tests with no need to interact with Github.com, and you’ll write automated tests that enable you to update the application while speeding up the development cycle. When you’re done, you’ll have built an easy-to-update application that allows users to log in with their GitHub credentials.

This project is designed for learning purposes and is not a complete, production-ready application or solution.

book resources

When you start your liveProject, you get full access to the following books for 90 days.

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

This liveProject is for beginner-level Go programmers interested in learning to build a web application that allows users to sign in with their GitHub credentials. To begin these liveProjects you’ll need to be familiar with the following:

TOOLS
  • Key Go standard library packages: net/http, net/http/cookiejar, net/http/httptest, testing
  • Third-party packages: https://golang.org/x/oauth2 and github.com/google/go-github
  • HTTP cookies (for maintaining state on the client side)
  • Understanding of how HTTP applications work (concepts including request routing, cookie handling, and redirects)
TECHNIQUES
  • Language basics: writing functions, creating structures, conditional statements, standard input and output, and basic understanding of interfaces
  • Packaging basics: what a module is and using sub-packages
  • Go commands: go build and go test

you will learn

In this liveProject, you’ll learn how to create a web application that allows users to log in using their GitHub credentials.

  • Use the Go standard library packages to implement authentication using GitHub OAuth
  • Access the GitHub API using GitHub Go
  • Work with HTTP cookies in Go
  • Implement techniques to write a testing-friendly web application
  • Write tests for applications without making external network requests
  • Implement a login using GitHub functionality
  • Implement HTTP client middleware to test your web application

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.

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
  • GitHub Sign-In Application project for free