Skip to content

joshsaintjacque/ProgrammingWithConstraints

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published