Giter Club home page Giter Club logo

awesome-advent-of-code's Introduction

Awesome Advent of Code

This is a collection of awesome resources related to the yearly Advent of Code challenge.


Project Templates

Templates, cookiecutters and skeletons for quickly setting up projects in your favourite language.

Tools and Utilities

  • Browser extension for private leaderboard visualization
  • Browser extension which enhances your personal stats page with a time from Part 1 to Part 2 column (it also tracks when you've first opened a puzzle and offsets the completion times accordingly)
  • Browser extension (open source) enhancing private leaderboards with a "medals/podium" chart per day, Part 1 to Part 2 overview, and several other charts for your leaderboard
  • Globals medals overview -- Alternative global leaderboard showing first, second and third places as gold, silver and bronze medals.
  • Scatterplot of first 100 -- Scatterplot of the time taken to solve the parts of each puzzle by the first 100 people that solved it.
  • Private Leaderboard Visualiser -- Given a JSON of your private leaderboard data this website will show you graphs of how long each member took to solve parts 1 and 2 of each day.
  • aocdl -- Command-line utility that automatically downloads your personal input file while you read the puzzle description (Go).
  • aocinput -- CLI for getting inputs. Clipboard support. Polite to AoC. Nice help and options. (Go)
  • aoc_rb -- A Ruby gem that generates an empty AoC project, and provides command-line tools for fetching input and submitting solutions (Ruby)
  • aoc-cli -- Command-line utility that helps solve problems in ruby: it downloads your personal input file, creates the sample source files and benchmarks your solutions (Ruby).
  • AocKt -- A testing library for creating unit tests for AoC solutions with minimal boilerplate. (Kotlin)
  • AoCHelper -- NuGet library that simplifies puzzle solving and provides benchmarking (.NET).
  • AdventOfCode.Runner -- NuGet package that automatically provides your puzzles solvers with the input from the AOC site and verifies calculated answers (.NET / C#).
  • aocleaderboard -- get over the 200-member limit for private leaderboards and combine multiple leaderboards in a single page with recalculated scores.
  • advent-of-code-api -- Haskell library for querying AOC prompts, inputs, and leaderboards (Haskell)
  • advent-of-code-ocr -- Command line utility and Haskell library for parsing AoC ascii art words (Haskell)
  • advent-of-code-ocr -- Python module for parsing AoC ascii art words (Python)
  • aoc-agent -- C# source generator that generates: a) tests for your solution logic, b) complete runner that handles input fetching and answer submitting (.NET)
  • aoc-ranking -- Show all non-zero score AoC participants in one, global scoreboard. (Python)
  • aoc-cli -- Read puzzle descriptions, download input, and submit answers from the comfort of your terminal. (Rust)
  • adventofcode-badge -- An interface over Shields.io to facilitate the creation of badges from Advent of Code.
  • @aocjs/cli -- Package for executing solutions with hot reload and data fetching (JavaScript, TypeScript)
  • eggnog -- CLI for getting input, directions (with nice colors!), and submitting answers. Caches absolutely everything. (C)
  • aoc-badges-action -- A GitHub action for updating various aoc-related badges in your README (GitHub Action, Python)
  • advent-readme-stars -- A GitHub action that adds and maintains a table of your AoC progress to your README (GitHub Action, Python)
  • aoctimer -- A language-agnostic, multiplatform tool to measure your solution time in relative units, so you can share and compare your results with others.
  • aocrunner -- A fast solutions runner and template generator, with simple CLI, customizable template, simple testing utility, live reload, and adventofcode.com integration. (JavaScript, TypeScript)
  • advent-of-code-client -- A Node.js package for fetching inputs, running puzzle challenges and submitting answers to adventofcode.com directly from your JavaScript code. Also includes some commonly used & customizable input transformation functions. (JavaScript)
  • advent-of-code-runner -- Node.JS CLI solution generator and runner. Downloads inputs, submits answers, prevents duplicate submissions, measures performance, tracks progress and outputs statistics. (JavaScript)
  • AoC-execution-time-table-generator -- A C++20 tool to generate an execution time table for both parts of each AoC day, based on input file with time details.
  • aocf -- A CLI tool (and also, optionally, crate) written in Rust, with a CLI inspired by git. Problem briefs may be displayed in a scrollable ANSI terminal (mostly) faithful to the AoC website.
  • AdventOfCodeAbstractions -- A NuGet package that contains extendable abstractions and generalized helpers to simplify and streamline .NET AoC puzzle solving. (C#)
  • aocd -- A template generator and library for solving AoC with Deno that handles input fetching and solution submitting. (TypeScript / Deno)
  • advent_of_code_utils -- Input fetcher and boilerplate generator for those solving AoC in Elixir. (Elixir)
  • Advent of Code Surveys (Results Dashboard) -- Dashboard with charts and data tables showing the results of the yearly Advent of Code Survey
  • AdventOfCode-CLI -- A Commandline interface written in python to quickly generate boilerplates in different languages and fetching your puzzle input. Also includes customizable templates and measures solution times.
  • aoc-cli -- Command-line utility that helps solve problems in python: it downloads your personal input file, creates the sample source files and makes sure you don't submit answers twice (Python).
  • Golfcoder -- A code golf community leaderboard for adventofcode.com, with a focus on code size. Every name, including variables and functions, is considered as a single token, irrespective of its length. (Python, Rust, Go, Kotlin, JavaScript, C#, TypeScript, C++, Java, C, Swift, Scala)
  • aoc-tiles -- A tool which automatically creates a fancy image with solve times for each solved day in your readme as a 5x5 grid. Works as a pre-commit hook or as a CLI (Python).
  • wang-aoc-cli -- A CLI tool for automatically copying boilerplate code, downloading problem statements and inputs, parsing example inputs and solutions from problem statements, testing against example inputs, and submitting. Expects programs to use stdin and stdout to read inputs and write answers. (Python)

Other Advent Calendars

24 days of cool stuff regarding .

2023

WARNING: All of these likely contain spoilers.

Read CONTRIBUTING.md to learn how to add your own repos.

Solutions

Ada

Solutions to AoC in Ada.

APL

Solutions to AoC in APL.

Arturo

Solutions to AoC in Arturo.

Assembly

Solutions to AoC in Assembly.

AWK

Solutions to AoC in AWK.

Bash

Solutions to AoC in Bash.

BQN

Solutions to AoC in BQN.

C

Solutions to AoC in C.

C#

Solutions to AoC in C#.

C++

Solutions to AoC in C++.

C3

Solutions to AoC in C3.

Clojure

Solutions to AoC in Clojure.

Common Lisp

Solutions to AoC in Common Lisp.

Crystal

Solutions to AoC in Crystal.

D

Solutions to AoC in D.

Dart

Solutions to AoC in Dart.

Deno

Solutions to AoC in Deno.

Elixir

Solutions to AoC in Elixir.

Elm

Solutions to AoC in Elm and Literate Elm.

Emacs Lisp

Solutions to AoC in Emacs Lisp (elisp).

Erlang

Solutions to AoC in Erlang.

Excel

Solutions to AoC in Excel.

F#

Solutions to AoC in F#.

Factor

Solutions to AoC in Factor.

Gleam

Solutions to AoC in Gleam.

Go

Solutions to AoC in Go.

Groovy

Solutions to AoC in Groovy.

Hamler

Solutions to AoC in Hamler.

Haskell

Solutions to AoC in Haskell.

Haxe

Solutions to AoC in Haxe.

HolyC

Solutions to AoC in HolyC (TempleOS).

Hoon

Solutions to AoC in Hoon (Urbit).

Idris

Solutions to AoC in Idris.

J

Solutions to AoC in J.

Java

Solutions to AoC in Java.

JavaScript

Solutions to AoC in JavaScript.

jq

Solutions to AoC in jq.

Julia

Solutions to AoC in Julia.

Kotlin

Solutions to AoC in Kotlin.

LDPL

Solutions to AoC in LDPL.

Lua

Solutions to AoC in Lua.

M4

Solutions to AoC in M4.

MATLAB

Solutions to AoC in MATLAB (Octave).

Nim

Solutions to AoC in Nim.

Nushell

Solutions to AoC in Nushell.

Objective-C

Solutions to AoC in Objective-C.

OCaml

Solutions to AoC in OCaml.

PHP

Solutions to AoC in PHP.

Perl

Solutions to AoC in Perl.

Picat

Solutions to AoC in Picat.

Pony

Solutions to AoC in Pony.

Prolog

Solutions to AoC in Prolog.

PowerShell

Solutions to AoC in PowerShell.

Python

Solutions to AoC in Python.

R

Solutions to AoC in R.

Racket

Solutions to AoC in Racket.

Raku

Solutions to AoC in Raku.

ReasonML

Solutions to AoC in ReasonML.

Red

Solutions to AoC in Red.

REXX

Solutions to AoC in REXX.

Rhombus

Solutions to AoC in Rhombus.

ROBO1

Solutions to AoC in ROBO1.

Roc

Solutions to AoC in Roc.

Ruby

Solutions to AoC in Ruby.

Rust

Solutions to AoC in Rust.

Smalltalk

Solutions to AoC in Smalltalk.

Scala

Solutions to AoC in Scala.

Scheme

Solutions to AoC in Scheme.

Solidity

Solutions to AoC in Solidity.

SpectX

Solutions to AoC in SpectX.

SQL

Solutions to AoC in SQL.

Standard ML

Solutions to AoC in Standard ML.

Swift

Solutions to AoC in Swift.

TypeScript

Solutions to AoC in TypeScript.

TypeScript Types

Solutions to AoC in the TypeScript type system.

Unison

Solutions to AoC in Unison.

V

Solutions to AoC in V.

VB.NET

Solutions to AoC in VB.NET.

Whitespace

Solutions to AoC in Whitespace.

Zig

Solutions to AoC in Zig.

Zsh

Solutions to AoC in Zsh.

Live Streams

Folks who are live streaming their process.

awesome-advent-of-code's People

Contributors

actions-user avatar alexaegis avatar andi0b avatar believer avatar bogdanp avatar chinesedfan avatar codemicro avatar daniel-dara avatar darthgandalf avatar djordjenedovic avatar drkameleon avatar eduherminio avatar encse avatar ephemient avatar fdlk avatar gamma032steam avatar goggle avatar julemand101 avatar maneatingape avatar ndunnett avatar praful avatar s-ecki avatar simonbaars avatar sivertjoe avatar therealmolen avatar tumdum avatar viceroypenguin avatar vuryss avatar yspreen avatar zsacul avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-advent-of-code's Issues

Track progress of each project

Maybe a little hard. But I doubt every added project can reach 50 stars at last. Without tracking, this repository will become a list like Github search results. Not awesome.

Years before 2018 welcome?

I hesitated to create fresh pre-2018 .md files because there might be a build action or specific gotcha in creating one? If there isn't, I'd be happy to create a base file for those earlier years, same setup as the newer ones?

Thx for a great repo!

update badge action breaking external repo URLs

see: 9bbfb5f#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L373-R373

The bot seems to replace any link to gitlab (probably any other hoster too?) with Github, thus effectively breaking external repo urls. This doesn't seem like it should be expected behaviour.

I haven't looked into the action code yet, but I guess it's somewhere in there.
I'd suggest either changing that, so the bot doesnt change urls, or not allowing external repos.

Support for community contest

Hi folks,

Thanks for the amazing effort around this repository. As a builder of Advent of Frontend I wanted to ask if you'd be interested in featuring community projects like mine.

Feel free to share honest feedback - I don't want to force any PR if you think it's not the right idea.

Cheers

Expanding Archived Lists

Is there any interest in expanding the archives to contains lists of solutions for 2015, 2016, and 2017?

User provided Progress Tracking badges

(I know there is a previous issue on this but it was closed a year ago)

How about multi-year repositories? Or people who participate later? The last commit is good to see if something is actively developed or not, but not for progress. The most straightforward solution as mentioned before would be to allow for PR's about updating progress. But, it does have the cost of having to merge a lot of requests.

I have a far better solution that requires no maintenance other than solvers updating their own repositories:

Shields.io provides a service where you can feed it a JSON endpoint with a certain schema that will show you a custom badge. And guess what, we can use raw.githubusercontent.com as an API for this.

When pointing to a nonexistent endpoint it looks ugly ( 2018 Progress
) so I'd only add it using PR's, but one PR is still far better than any solutions before and can be added with the initial one if we let the contributor know about it.

Proof of concept:

2018 Progress

The way I'd do it is (as seen as the previous example) is by placing a badges folder in a "hidden" folder (I'd use the existing .github folder, but a .aoc or a straight-up .shields or .badges folder, without an inner badges would be good too) and placing a <year>.json file inside which would then contain the response to render the badge:

{
	"schemaVersion": 1,
	"label": "AoC 2018",
	"message": "14/25",
	"color": "orange"
}

I'd reserve "color": "green" for completed years.

This way everybody could just update their progress inside their repositories so there's no need for any PR's except the initial one.

Ps.:

This solution would require some discipline though but I think in this community we can count on that. Especially because we only have to care about a niche sub-community of the ones who'd like to show their work. An additional disclaimer in the readme.md would be nice too, something on the line of "We do not take responsibility for the content of custom badges".

Edit: This idea then could be extended to provide information about the languages used.

Show last commit day on badges

Because the default last-commit badge will format the date as December with the time changes, it is hard to distinguish between repositories now.

I find http://shields.io supports dynamic badges, which means we can design own date format. For example, YYYY/MM/DD should be better.

Last commit status

What's more, after badges/shields#2473 is merged, we can customize everything besides badge text.

Updating badges more often

I think the badges should be updated more often because I for example uploaded my solution already, but the cron job for the update will run the next time in around 18 hours, so for 18 hours now the badge is wrong. Maybe update them every hour?

Question

How do you decide what repos go up here?

Polyglot repositories

Currently, someone who looks for a repository in a certain language will overlook the ones in the polyglot section. Marking them with the languages isn't a good solution because you have to look in two sections for it.

I suggest removing the restriction of not being able to add our codebases into multiple language sections.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.