Intro Projects - racket/racket GitHub Wiki

This page lists Racket projects which are feasible for people who don't have a lot of experience with the Racket code base. They're mostly small, self contained, and would be extremely useful. Some involve writing a new library that would be useful to lots of other people, and some help fix or clean up some aspect of the existing Racket code base.

The best place to ask for help with any of these is on the users mailing list.

Remember the Racket Documentation is your friend for solving problems, DrRacket is a powerful IDE that can help write and debug your code (and macros), and don't forget to check the Racket Package Repository for packages that can help you complete your project.

Don't forget to take a peek at Recreational Programming for more ideas.

These are self-contained projects. Just create a new github repository, and start hacking. When you have something that works, release it on the package catalog. To get started with packages, take a look at its documentation.

  • One other relatively easy project would be to add sha256 to the openssl library.
    There is a version of sha256 implemented in https://github.com/RayRacine/grommet but it's for Typed Racket only. I know that it's possible to use TR from untyped code, but it would be nice to have it all in one place. (There's also this: https://pkgs.racket-lang.org/package/sha)

  • Implement a Rosetta code task: http://rosettacode.org/wiki/Reports:Tasks_not_implemented_in_Racket

    • You could also re-implement or improve an existing Racket solution
  • Implement mini versions of classical programs (can be used as extended examples on the web site):

    • Notepad using racket/gui
    • Paint
    • Calculator
  • Data structures: hash array mapped trie, 2-3 finger trees, other purely functional data structures (some already implemented here).

  • Code for doing OAuth

    • Now available here
    • Also available as part of ryanc's webapi PLaneT package.
  • Write bindings for libgit

  • Write bindings to Authorize.Net

  • Write libraries to interact with Wii Remotes

  • Write libraries to interact with game controllers

    • This exists on for Mac OS X, but an interface should be normalized and available across platforms.
    • maybe use libsdl?
  • Write bindings to various Google APIs

    • Authentication would be useful
    • Other interesting things: docs (esp. around spreadsheets), maps
  • Write bindings to the Github API

    • Basic binding available here
  • Write bindings to the Twitter APIs

  • Write bindings to the Facebook APIs

  • Write bindings to Amazon AWS.

    • Eric Hanchrow has some first steps which might be inspirational.
    • a typed/racket effort by Ray Racine which is actively being developed.
    • Greg Hendershott has untyped Racket code for the S3, SDB, SES, SNS, SQS, CloudWatch, and other services Github.
  • Write XMPP bindings

    • A starting point can be found here
  • Bindings for a text to speech engine

  • IRC log highlighter. Starting points :

  • IRC client library (can be based on the gabot code (contact Eli), which is better for a library than rudybot). Jonathan Schuster has done racket-irc.

  • Bindings for Apple's Core-* Libraries

  • Write a better s-exp diff tool

  • Write bindings to gobject introspection

  • Use the Racket examples on Rosetta Code and the snippets on the http://racket-lang.org home page to make demo.racket-lang.org that show cases programs and snippets written in Racket. There's a start of explanations of the home page snippets here: https://github.com/samth/racket-examples