This repository provides an implementation of the coding challenges procvided in the Coding Challenges blog here
This is an attempt to solve the coding challenges for building simple tools as well as my personal goal of learning go while building these simple projects.
The repository contains free exercises provided on John Calhoun's site here Solutions for the problems attempted are as below
- Quiz Game
- Builds a simple quiz game where users is asked for a CSV with simple questions and answers and then those questions are used to quiz the user.
- Concepts : flags, GoRoutines, time and Channels
- URL Shortner
- Builds a simple URL shortner to take in a shortened URL andget the complete URL for the suggested URL
- Concepts : YAML file parsing, introduction of MUX for routing
- Packages : net/http, gopkg.in/yaml.v3
- Choose Your Own Adventure(CYOA)-Web App
- Build a minimalistic HTML template based we application that features a Simple HTML page with capabilitites of updating the page content based on configured JSON file.
- Concepts : GO HTML teamplate Rendering, JSON Parsing, Structs tagging for JSON fields, functional Options
- Packages : encoding/json, net/http
- Link Parser Utility
- A simple utility that extracts all the links from a page given a HTML file
- Concepts : HTML parsing
- Packages: golang.org/x/net/htm
- SiteMap builder
- Utility built on top of the Link parser utility that takes in a seed Url and generates a site map of all the pages linked to the seed URL. Use BFS for getting links of all the child links obtianed from the seed link.
- Concepts : Captrure resonse HTML of a GET request, defer, Copying data from reader to writer stream, BFS
- Packages : net/http, encoding/xml
- CLI TODO utility
- Utility built using the spf13/cobra library that gives a simple CLI TODO application.
- Concepts - CLI application, cobra usage for creating CLI applications, db integration
- Packages : spf13/cobra