52 weeks, 52 Go projects

Project52 Golang Challenge

A project to write a small project everyweek. All projects are written by Golang.

Preface:

I saw a slide reflectionsfrom 52 weeks 52 projects and felt inspired. So, I hope I could learn something by doing the same challenge myself.

Constraint:

Here are the constraints of Project52.

  • The project could be small or big, but it should be something new not just refactoring an old project.
  • The Programming language is not limited, feel free to write any language you have just learnt. (actually I am interested in writing some R packages, just because I want to learn it.)
  • Don't need to create brand new project, you could rewrite some exist project. (but on your own way, not allow to fork and refine.)

Progress (2015/06/25~2016/06/17)

  1. (06/25) GitHub stars https://github.com/kkdai/goFBPages A facebook page photo downloader
  2. (07/02) GitHub stars https://github.com/kkdai/goInstagramDownloader Instagram photo downloader
  3. (07/10) GitHub stars https://github.com/kkdai/goFbAlbum A package to summerize all facebook album handle APIs using FB Graph API..
  4. (07/18) GitHub stars https://github.com/kkdai/mstranslator A client to use Microsoft Translator Services.
  5. (07/25) GitHub stars https://github.com/kkdai/iloveptt A Web crawler to browse PTT and download photos
  6. (07/31) GitHub stars https://github.com/kkdai/paxos A consensus algorithm "Paxos" implement
  7. (08/07) GitHub stars https://github.com/kkdai/bloomfilter A bloom filter implement
  8. (08/15) GitHub stars https://github.com/kkdai/skiplist SkipList implement in Go
  9. (08/22) GitHub stars https://github.com/kkdai/pubsub A Redis pub/sub concept implement
  10. (08/29) GitHub stars https://github.com/kkdai/webpic A website pic downloader
  11. (09/04) GitHub stars https://github.com/kkdai/jsonop A json operation library
  12. (09/12) GitHub stars https://github.com/kkdai/radix A simple radix tree implement in Golang
  13. (09/19) GitHub stars https://github.com/kkdai/dfa A Deterministic Finite Automata function implement in Golang
  14. (09/26) GitHub stars https://github.com/kkdai/nfa A Nondeterministic Finite Automata function implement in Golang
  15. (10/02) GitHub stars https://github.com/kkdai/e-nfa A Epsilon Nondeterministic Finite Automata function implement in Golang
  16. (10/09) GitHub stars https://github.com/kkdai/re2epsnfa A tranform function to translate RE to Epsilon-NFA
  17. (10/16) GitHub stars https://github.com/kkdai/cyk CYK algorithm in Golang
  18. (10/23) GitHub stars https://github.com/kkdai/pcp PCP: Post’s Correspondence Problems simple solver implement in Golang
  19. (10/30) GitHub stars https://github.com/kkdai/tm TM: Turing Machine implement in Golang
  20. (11/05) GitHub stars https://github.com/kkdai/twitter A simple twitter API in Golang
  21. (11/13) GitHub stars https://github.com/kkdai/consistent Consistent Hashing implement in Golang
  22. (11/20) GitHub stars https://github.com/kkdai/photomgr A photo download made for gomobile in Golang
  23. (11/27) GitHub stars https://github.com/kkdai/trigram A trigram indexing using Go
  24. (12/04) GitHub stars https://github.com/kkdai/ngram A ngram indexing using Go
  25. (12/11) GitHub stars https://github.com/kkdai/beacon Beacon Simulator: A simple beacon simulator (iBeacon/Eddystone) in Golang
  26. (12/18) GitHub stars https://github.com/kkdai/youtube A Youtube download package in Golang
  27. (12/25) GitHub stars https://github.com/kkdai/react-diff React Diff binary tree in Golang (Graphviz)
  28. (12/31) GitHub stars https://github.com/kkdai/EddystoneScanner Eddystone Beacon Scanner in Golang
  29. (01/08) GitHub stars https://github.com/kkdai/CoapPubsub A PubSub client/server using CoAP protocol
  30. (01/15) GitHub stars https://github.com/kkdai/ri A UDP client/server to get Public and Private IP and Port for hole punching
  31. (01/22) GitHub stars https://github.com/kkdai/coapmq A Publish-Subscribe Broker for the Constrained Application Protocol (CoAP) in Golang
  32. (01/29) GitHub stars https://github.com/kkdai/oxford-face Project Oxford Face API for Golang
  33. (02/05) GitHub stars https://github.com/kkdai/oxford-face-client A client App for oxford-face Golang package (http://github.com/kkdai/oxford-face)
  34. (02/12) GitHub stars https://github.com/kkdai/oxford-emotion Project Oxford Emotion API for Golang
  35. (02/19) GitHub stars https://github.com/kkdai/diskqueue NSQ Diskqueue implement in Golang
  36. (02/26) GitHub stars https://github.com/kkdai/pd (PUBSUB) Publish-Subscrbe message broker with Disk queue in Golang
  37. (03/04) GitHub stars https://github.com/kkdai/rd A simple RPC Message Queue Server/Client with DiskQueue
  38. (03/11) GitHub stars https://github.com/kkdai/raftrpc Simple RPC Key Value Server using etcd/Raft in Golang
  39. (03/18) GitHub stars https://github.com/kkdai/githubrss A github notification (starred, follower, followed) RSS feed in Golang
  40. (03/25) GitHub stars https://github.com/kkdai/rss-webserver A simple Github Status RSS feeder server in Golang
  41. (04/01) GitHub stars https://github.com/kkdai/slack-console A simple slack console tool in Golang
  42. (04/08) GitHub stars https://github.com/kkdai/plurk-makerserver Plurk post server for IFTTT Maker in Golang
  43. (04/15) GitHub stars https://github.com/kkdai/kmp KMP (Knuth–Morris–Pratt algorithm) implement and related string function Strstr and Strchr in Golang
  44. (04/22) GitHub stars https://github.com/kkdai/aca Aho–Corasick algorithm automation implement in Golang
  45. (04/29) GitHub stars https://github.com/kkdai/LineBotTemplate A simple Golang LineBot Template and tutorial how to setup on Heroku for Line Bot API
  46. (05/06) GitHub stars https://github.com/kkdai/LineBotPetNeedMe Animal Adoption Platform on Line Bot
  47. (05/13) GitHub stars https://github.com/kkdai/petneedme Package to get Pet Adoption OpenData from Taiwan in Golang
  48. (05/20) GitHub stars https://github.com/kkdai/bstream A Bit Stream helper in Golang
  49. (05/27) GitHub stars https://github.com/kkdai/trr TRR: Time-Series of gorilla algorithm with Raft RPC Server/Client in Golang
  50. (06/03) GitHub stars https://github.com/kkdai/maglev A Google Maglev Hashing Algorithm implement in Golang
  51. (06/10) GitHub stars https://github.com/kkdai/petl A Pipeline ETL process and receive data from pipe in Golang
  52. (06/17) GitHub stars https://github.com/kkdai/raftserver A RPC Server implement base on Raft Paper in Golang

Talk

Join Me

Feel free to fork this project, if you want to do your Project52 Challenge.

Provide Idea or Encourage..

Please file an issue if you want to suggest a small project idea. (hopefully it could be done within one week. :p ).

You can also encourage me by starring this project. Or just join me.

Owner
Evan Lin
Attitude is Everything. @golangtw Co-Organizer / LINE Taiwan Technology Evangelist. Golang GDE.
Evan Lin
Similar Resources

PlantUML Class Diagram Generator for golang projects

PlantUML Class Diagram Generator for golang projects

GoPlantUML PlantUML Class Diagram Generator for golang projects. Generates class diagram text compatible with plantuml with the information of all str

Dec 31, 2022

James is your butler and helps you to create, build, debug, test and run your Go projects

James is your butler and helps you to create, build, debug, test and run your Go projects

go-james James is your butler and helps you to create, build, debug, test and run your Go projects. When you often create new apps using Go, it quickl

Oct 8, 2022

Manage Go Versions/Projects/Dependencies

Manage Go Versions/Projects/Dependencies

rodent rodent is a shell (bash) application which: Manages multiple versions of Go. Allows you to test/build your projects against multiple Go release

Dec 13, 2022

Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework Flamingo is a web framework based on Go. It is designed to build pluggable and maintainable web projects. It is production ready, f

Jan 5, 2023

Getting better at Linux with 10 mini-projects.

10 things Linux How do you advance your Linux skills when you are already comfortable with the basics? My solution was to come up with 10 subjects to

Dec 25, 2022

Visualize how a projects source code is distributed among its files and folders

Visualize how a projects source code is distributed among its files and folders

Source Code Visualizer Visualize the code distribution in a project. Applications Applications include: Visualizing code distribution for more educate

Jul 31, 2022

HA LDAP based key/value solution for projects configuration storing with multi master replication support

Recon is the simple solution for storing configs of you application. There are no specified instruments, no specified data protocols. For the full power of Recon you only need curl.

Jun 15, 2022

Build system and task runner for Go projects

Build system and task runner for Go projects

Gilbert is task runner that aims to provide declarative way to define and run tasks like in other projects like Gradle, Maven and etc.

Dec 21, 2022

⚡️ A lightweight service that will build and store your go projects binaries, Integrated with Github, Gitlab, Bitbucket and Bitbucket Server.

⚡️ A lightweight service that will build and store your go projects binaries, Integrated with Github, Gitlab, Bitbucket and  Bitbucket Server.

Rabbit A lightweight service that will build and store your go projects binaries. Rabbit is a lightweight service that will build and store your go pr

Nov 19, 2022

Continuous performance analysis reports for software projects 🤖

Performabot Welcome to Performabot! This little helper can be used to provide Continuous Performance Reports within your GitHub project. But please be

Nov 16, 2022

Fast and powerful Git hooks manager for any type of projects.

Fast and powerful Git hooks manager for any type of projects.

Lefthook The fastest polyglot Git hooks manager out there Fast and powerful Git hooks manager for Node.js, Ruby or any other type of projects. Fast. I

Jan 4, 2023

A list of Go GUI projects

(Please follow @Go100and1 for updates on this page, and all kinds of details and facts in Go). A list of Go GUI/graphics/image related projects native

Jan 3, 2023

Architecture checks for Go projects

Arch-Go Architecture checks for Go projects Supported rules Dependencies Checks Supports defining import rules Allowed dependencies Not allowed depend

Dec 20, 2022

A program that generates a folder structure with challenges and projects for mastering a programming language.

Challenge Generator A program that generates a folder structure with challenges and projects for mastering a programming language. Explore the docs »

Aug 31, 2022

Automated configuration documentation library for Go Projects.

Cato Cato is an automated documentation generation library for Go Projects. Through the use of custom tags for struct fields, Cato can extract informa

Aug 28, 2020

General purpose reloader for all projects.

leaf General purpose reloader for all projects. Command leaf watches for changes in the working directory and runs the specified set of commands whene

Nov 8, 2022

Hermit manages isolated, self-bootstrapping sets of tools in software projects.

Hermit - uniform tooling for Linux and Mac Hermit installs tools for software projects in self-contained, isolated sets, so your team, your contributo

Jan 3, 2023

💻 A one-line installer for GitHub projects!

💻 A one-line installer for GitHub projects!

instl Instl is an installer that can install most GitHub projects on your system with a single command. Installation | Documentation | Contributing In

Jul 23, 2022
Copy of stdlib's time.Duration, but ParseDuration accepts other bigger units such as days, weeks, months and years

duration Copy of stdlib's time.Duration, but ParseDuration accepts other units as well: d: days (7 * 24 * time.Hour) w: weeks (7 * Day) mo: months (30

Jun 21, 2022
Clones github projects into ~/Projects/github/{org}/{repo}

Tidy clone Github cli extension (gh extension) to clone repos into ~/Projects/github/{org}/{repo} on the local filesystem Install gh extension install

Jan 19, 2022
A lightweight yet powerful config package for Go projects

Config GoLobby Config is a lightweight yet powerful config package for Go projects. It takes advantage of env files and OS variables alongside config

Dec 11, 2022
Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables to be loaded from the .env file.

genv Genv is a library for Go (golang) that makes it easy to read and use environment variables in your projects. It also allows environment variables

Dec 21, 2022
Create new Go projects (golang)

Gonew V2 This is Gonew V2. It improves on Gonew Classic by providing a more flexible configuration and a vastly simpler code base. If you are migratin

Jul 29, 2020
dht is used by anacrolix/torrent, and is intended for use as a library in other projects both torrent related and otherwise

dht Installation Install the library package with go get github.com/anacrolix/dht, or the provided cmds with go get github.com/anacrolix/dht/cmd/....

Dec 28, 2022
The gofinder program is an acme user interface to search through Go projects.

The gofinder program is an acme user interface to search through Go projects.

Jun 14, 2021
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.
Flamingo Framework and Core Library. Flamingo is a go based framework for pluggable web projects. It is used to build scalable and maintainable (web)applications.

Flamingo Framework Flamingo is a web framework based on Go. It is designed to build pluggable and maintainable web projects. It is production ready, f

Jan 5, 2023
A lightweight yet powerful IoC container for Go projects

Container A lightweight yet powerful IoC container for Go projects. It provides a simple, fluent and easy-to-use interface to make dependency injectio

Dec 29, 2022
Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects.
Clean architecture validator for go, like a The Dependency Rule and interaction between packages in your Go projects.

Clean Architecture checker for Golang go-cleanarch was created to keep Clean Architecture rules, like a The Dependency Rule and interaction between mo

Dec 31, 2022