karan/Projects: a list of 14 problem categories and a second repo for the answers
:page_with_curl: A list of practical projects that anyone can solve in any programming language.
At a glance
- What is it?
- A text-only repository of programming exercises, sorted by subject and delivered as README prose with no build and no code. It is useful as a practice backlog; it is not a library, and the solutions live somewhere else entirely.
- Who is it for?
- Use karan/Projects when you need a backlog of self-contained exercises in a language you already know, and treat MIT on the README text as covering the list, not the origin of each problem statement. Check the commit you forked from on master, because the last push was on 2024-08-14 and there are no releases to compare against, and look up the matching entry in thekarangoel/Projects-Solutions if you want a reference implementation before you start.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Probably not. The repository last received commits 25 months ago, on August 14, 2024.
- What is it written in?
- GitHub does not report a main language for this repository.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
There is no build here, only a README, a licence and two folders
karan/Projects has no primary language and nothing to compile. The top-level tree is .gitignore, CONTRIBUTING.md, LICENSE.md, README.md, RECOGNITION/ and docs/, and GitHub reports no dominant language for the repository. What you get is a document. The README calls it a list of practical projects that anyone can solve in any programming language, and it sorts material by subject rather than by stack, which is the whole design: a Java programmer and a Python programmer read the same entry and implement it in their own toolchain. The consequence for anyone expecting a package is total. There is no dependency to add, no API to call, no test to run, and no version constraint to satisfy. The unit of work is one problem statement that you implement in your own repository, in a language you already use. The README's only instruction for getting started is to fork the repository, and that fork exists so you can write solutions, not so you can consume something.
The table of contents links to README anchors, never to a folder path
Fourteen categories are listed: Numbers, Classic Algorithms, Graph, Data Structures, Text, Networking, Classes, Threading, Web, Files, Databases, Graphics and Multimedia, and Security. Each entry is an in-page anchor, for example #numbers or #security, and the README states that each category has its own folder. Those two facts sit awkwardly together. An anchor resolves to a heading inside README.md, so the table of contents never tells you a directory name, and the folder layout is not written out anywhere in the text you can read on the repository page. If you want to script across the categories, to count entries or diff your fork, you have to map each anchor to a directory yourself and confirm the names by browsing the tree. The list also gives no per-category counts, so there is no way to tell from the README which categories are deep and which are thin until you open them.
Solutions live in a different repository, so a fork carries problems but no answers
The implementations are not in this repository. The README points at thekarangoel/Projects-Solutions, where other users have written the same projects in many other languages, and states that solutions you contribute will be published there rather than here. Two consequences follow. First, difficulty calibration is missing from your checkout: every entry is a statement with no reference output, no expected result and no sample input beyond whatever the prose contains, so you find out whether a problem was too easy by comparing it later with someone else's answer. Second, the two repositories move independently, so an entry here can have no matching solution there, and a solution there can describe a problem that has since been reworded or removed. One small friction worth knowing before you open a pull request: the links inside the README are written against thekarangoel/Projects, while the repository hosting the file is karan/Projects, so following the hrefs in the README text takes you to a different account path than the one you cloned.
Optional extensions on every entry mean finished is not a state you can mark
The problems are written as base tasks with bolted-on extras, and the extras differ per entry. Factorial Finder asks for both loops and recursion, so a recursive answer alone does not clear it. Number Names sets a floor of one million or your language's maximum bounded integer, with an optional extension to zero, negative integers and floating-point values. Limit Calculator carries an optional goal of supporting infinite limits. Sorting asks for two types of sorting algorithm, and the Mortgage Calculator asks for a compounding interval selector alongside monthly and weekly. Calculator turns scientific if you want added complexity. The reader has no shared definition of done, and a solution that implements only the base task is neither wrong nor complete by any stated criterion. That is manageable in a private fork where you know your own bar. It is harder when you contribute, because the review has to judge which parts of an entry your code claims to have implemented.
Credit goes to Martyr2 and Rosetta Code, and no specification is attached
The problems are motivated by ones shared elsewhere, specifically Martyr2's Mega Project List on dreamincode.net and Rosetta Code, and Karan Goel is credited as the compiler of this list. What arrives in README.md is a restatement, not a formal specification. There is no input format section, no edge case table, no expected output for any entry, and no per-problem attribution showing which original entry a given exercise came from. If you need a canonical requirement or a reference difficulty, the original sources are where to look, because the README states motivation and rewrites the wording. On licensing, LICENSE.md at the repository root is MIT, and that grant covers the text compiled in this repository. It says nothing about the terms attached to the projects that inspired it, so anyone republishing a subset as their own curriculum has a gap to close that the licence file does not close for them.
Last push 2024-08-14 on master, with no releases to compare forks against
The repository is not archived, and the last push was on 2024-08-14 to the master branch. GitHub reports no releases for it, and there is no version field anywhere to coordinate on. For a practice list that costs you nothing, staleness barely registers. For a fork it matters in two concrete ways. The first is that there is no release, tag or version to say which state of the list you worked from, so the only reproducible coordinate is the commit hash you forked and the date you pulled it. The second is that external references can rot without leaving a trace. Entries name languages, tools and sites, and the README states nothing about checking those links, so a link that worked when the list was written may be dead in your copy with no way to tell whether the problem was removed upstream or moved on your fork. The README also promises no growth, so a category you need may simply not exist.
Most entries are prompt-shaped console exercises, not services to build
Read the Numbers category closely and the shape of the list becomes clear. Find PI to the Nth Digit, Find e to the Nth Digit, Fibonacci Sequence, Next Prime Number, Coin Flip Simulation and Happy Numbers all begin from user input: enter a number, the program generates, display an example of your output. The unit converter asks the user to enter the type of unit being entered, the type they want, and then the value. The alarm clock is a clock that plays a sound after a number of minutes. These are console-shaped exercises with parsing, prompts and printed results, which is why the any-language promise holds. It also means a team whose day job is HTTP and databases will get less from the list than someone learning a language for the first time, and entries that need a service, a schema or a deployment are the exception rather than the rule in the categories visible here.
docs/ and RECOGNITION/ sit in the tree with no explanation in the README
The top-level listing includes two directories that the README text never explains: docs/ and RECOGNITION/. The only files it links out to are CONTRIBUTING.md and the solutions repository. So a contributor looking for where a new problem should be filed ends up browsing the tree, and the README's own contributing paragraph names three actions, contributing solutions, adding new projects and removing existing ones, before deferring every detail to CONTRIBUTING.md. The rules that decide acceptance, formatting and category placement live in that file rather than in the document most people read. Since no category's scope is defined in the README either, where a new exercise belongs is a judgment call between Threading, Classic Algorithms and Web that the reader has to make before filing, and getting it wrong costs a review round.
Editorial conclusion
Use karan/Projects when you need a backlog of self-contained exercises in a language you already know, and treat MIT on the README text as covering the list, not the origin of each problem statement. Check the commit you forked from on master, because the last push was on 2024-08-14 and there are no releases to compare against, and look up the matching entry in thekarangoel/Projects-Solutions if you want a reference implementation before you start.
Frequently asked questions
What is karan/Projects and what am I supposed to do with it?
It is a list of practical projects that anyone can solve in any programming language, divided into categories, each with its own folder. There is nothing to install: the README tells you to fork the repository and implement the problems yourself in your own codebase.
Does karan/Projects include solutions or example code?
No, the implementations are kept in a separate repository. The README points at thekarangoel/Projects-Solutions for implementations in many other languages by other users, and states that solutions you contribute are published in that repository rather than in this one.
How do I contribute a new project to karan/Projects?
The README names three ways to contribute: add solutions to existing problems, add new projects, or remove existing ones, and it sends you to CONTRIBUTING.md for the instructions. Entries are grouped into one of fourteen categories, and the README does not define the scope of any single category.
Is karan/Projects still being updated?
The last push was on 2024-08-14 to the master branch, and the repository has no GitHub releases, so there is no version to track. The README states no roadmap or review schedule, so treat the list as a fixed snapshot and record the commit you forked from.
What licence covers the problems in karan/Projects?
LICENSE.md at the repository root is MIT, and that covers the list as compiled here. The problems are stated to be motivated by Martyr2's Mega Project List and Rosetta Code, so check those sources for the terms attached to the original material.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/karan-projects)