External APIs

GitHub Data Management 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 • basics of working with HTTP cookies in Go
skills learned
work with Go standard library packages and the GitHub Go SDK • access the GitHub API
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

You’re a software engineer for Echorand Corp., a growing analytics company that wants to address the lack of backup functionality provided by the GitHub software hosting service it uses. The company has a web application that allows users to log in using their GitHub credentials. Your task is to add functionality to that app that lets users download their data whenever they like. Using Go, HTML, JavaScript, and the GitHub Go SDK, you’ll implement support that enables users to export their data on GitHub, view their exports, and download them—a win for Echorand Corp. and for you!

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 who want to learn how to add data management functionality to an OAuth web application. 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)
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
  • Understanding of how HTTP applications work (concepts including request routing, cookie handling, and redirects)

you will learn

In this liveProject, you’ll learn how to:

  • Generate and embed HTML and JavaScript data
  • Access the GitHub API using the Go SDK to manage user data migrations
  • Use HTTP client middleware to write tests without your application interacting with GitHub.com

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 Data Management project for free