joshsaintjacque / ProgrammingWithConstraints

Generate side-project tasks with challenging constraints that make it interesting.

Home Page:https://constraints.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Programming with Constraints

What is it?

This app is designed to help solve the problem of sitting down at the keyboard with a blank editor and struggling to commit to an idea to complete.

Constraints.app solves this problem by giving you a specific task (story) to implement, including constraints that make the problem challenging or interesting to solve.

Click "randomize" to get a new project.

Features

  • Get a set of random constraints for your next side project
  • Lock constraints that you don't want to change when you randomize
  • Delete constraint options you don't want to be included
  • Missing language or project idea? Add a new one to any field
  • Restore to the initial set of constraints for any field
  • URLs are bookmarkable / shareable
  • Links to helpful resources for certain projects
  • A full set of tests

Roadmap

  • Dark mode

How is it built?

When building constraints.app I gave myself some constraints of my own:

  • It should run client-side only
  • It should not have any dependencies
  • It should be test-driven

This led to a really interesting experience solving certain problems and even led me to make tweaks to some of the features I had in mind in order to keep complexity down.

Contributing

Clone and make sure tests pass (see below). You can add projects, languages, platforms, and twists in their respective files under the data folder.

Running the tests

Load the app with the runTests parameter, then open the console.

Credits

About

Generate side-project tasks with challenging constraints that make it interesting.

https://constraints.app

License:MIT License


Languages

Language:JavaScript 79.7%Language:HTML 14.5%Language:CSS 5.8%