An open API service indexing awesome lists of open source software.

https://github.com/theoludwig/programming-challenges

Programming exercises and challenges to improve your algorithmic logic.
https://github.com/theoludwig/programming-challenges

algorithm-challenges challenges gitpod programming-challenges

Last synced: about 2 months ago
JSON representation

Programming exercises and challenges to improve your algorithmic logic.

Awesome Lists containing this project

README

        

programming-challenges


Programming exercises and challenges to improve your algorithmic logic.


CONTRIBUTING
Licence MIT
Contributor Covenant


CLI
Challenges
Conventional Commits


Gitpod ready-to-code



programming-challenges Logo

## 📜 About

**programming-challenges** brings programming exercises and challenges to improve your algorithmic logic.

Each challenge has its **solutions**, its **instructions** and **input/output examples** so you can try to solve them on your own. See [challenges](./challenges) folder.

[🧠 Programming Challenges - Blog Post](https://theoludwig.fr/blog/programming-challenges/).

### ✅ Programming languages available

- [C/C++ (gcc)](https://gcc.gnu.org/)
- [C# (Mono)](https://www.mono-project.com/)
- [Dart](https://dart.dev/)
- [Java (OpenJDK)](https://openjdk.java.net/)
- [JavaScript/TypeScript (Node.js)](https://nodejs.org/)
- [Python (PyPy)](https://www.pypy.org/)
- [Rust](https://www.rust-lang.org/)

## 🚀 Getting Started

### ☁️ Try with a Single-Click

Gitpod will automatically setup an environment for you.

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/theoludwig/programming-challenges)

### Locally

#### Prerequisites

- [Node.js](https://nodejs.org/) >= 20.11.0
- [npm](https://npmjs.com/) >= 10.0.0
- [Docker](https://www.docker.com/)

#### Installation

```sh
# Clone the repository
git clone [email protected]:theoludwig/programming-challenges.git

# Go to the project root
cd programming-challenges

# Install dependencies
npm clean-install

# Build the Command Line Interface (CLI)
npm run build

# Install the `programming-challenges` Command Line Interface (CLI)
npm install --global
```

### Usage

```sh
# Discover all the commands availables
programming-challenges --help

# Generate a new challenge
programming-challenges generate challenge --github-user="YourGitHubName" --challenge="hello-world"

# Generate a new solution
programming-challenges generate solution --github-user="YourGitHubName" --challenge="hello-world" --solution="function" --language="python"

# Test a solution
programming-challenges run test --challenge="hello-world" --solution="function" --language="python"

# Run a solution with specific `input.txt` file
programming-challenges run solution --challenge="hello-world" --solution="function" --language="python" --input-path="./challenges/hello-world/test/1/input.txt" --output

# Search for a challenge not yet solved in a specific programming language
programming-challenges search --language="rust"
```

## 💡 Contributing

Anyone can help to improve the project, submit a challenge, a solution or even correct a simple spelling mistake.

The steps to contribute can be found in the [CONTRIBUTING.md](./CONTRIBUTING.md) file.

## 📄 License

[MIT](./LICENSE)