A list of practical knowledge-building projects. As the projects are aimed to increase your knowledge base, they are somewhat challenging. However, there are a few easy ones too. Many of them are even worthy enough to showcase on your portfolio.
The projects are divided into multiple categories and tagged with some suggested languages and frameworks/tools (I'm still working on this part) to get you started.
To get started with the project ideas:
- Pick a project from the list
- Create a GitHub repository for the project
- Start working, possibly from scratch (reinvent the wheel if you have to!)
- When done, test it, and share with the tag #100ProjectsOfCode somewhere in the README of the repo
- Fork this repo
- Check the completed item, and repeat with another project idea
General Web projects, from building a simple website to building tools for complex and difficult networking tasks like packet sniffing.
- FTP Client
- HTTP Server
- Web Scraper
- Port Scanner
- Packet Sniffer
- P2P File Sharing
- Web Search Engine
- Bandwidth Monitor
- Product Landing Page
- Create Your Own Blog
- Your Portfolio Website
- Animated Navigation Toggle
- Country Lookup using IP address
Building automated bots is something you really want to try out at some point in your career/life.
Proper software or application suggestions that you may even end up using in your daily life, like a simple text editor or a custom music player.
- Quiz App
- Firewall
- ToDo List
- Text Editor
- App Builder
- Drawing App
- Survey App
- Web Browser
- Weather App
- Math Editor
- Music Player
- Stopwatch App
- URL Shortener
- Payment System
- Meme Generator
- Pomodoro Clock
- Typing Practice
- Grammar Checker
- News Aggregator
- Calorie Counter
- Traffic Notifier
- Virtual Assistant
- Antivirus Software
- Video Call Application
- Library Management System
- Relational Database Management System
Projects that mostly deal with Artificial Intelligence or Machine Learning. Ideal to showcase on your portfolio if you are thinking of apply for any AI related jobs or programs.
- Face Tracking
- Spam Classifier
- Spoiler Blocker
- Music Suggestor
- Machine Translator
- Hand Gesture Recognition
- Video Subtitle Generator
- Automatic Logo Generator
- Movie Recommendation System
- Audio to Sign Language Translator
Projects that provide a deeper insight into the inner workings of many CS related stuff that you may be using knowingly or unknowingly in your daily life.
- Build an OS
- Shuffle Deck
- Sorting Visualizer
- Static Code Analyzer
- Command Line Terminal
- UML Diagram Generator
- Pathfinding Visualizer
- Version Control System
- Code a Programming Language
Projects that involve dealing with encryption/decryption or in general computer security.
- Codec Software
- Password Manager
- Password Generator
- Folder Encrypter/Locker
- Password Strength Checker
All work and no play makes jack a dull boy! Games are a must to enjoy and learn many of the concepts of programming including OOPS.
- Pong
- Risk
- Chess
- Snake
- Tetris
- Chess AI
- Snake AI
- Map Maker
- Battleship
- Flappy Bird
- Tic-Tac-Toe
- Memory Puzzle
- Physics Engine
- Flappy Bird AI
- Tic-Tac-Toe AI
- Elevator Simulator
- Simulate the World
- Character Generator
- Conway's Game of Life
These were alone in their own categories and I didn't want them to feel alone, so I pooled them together.
- Deal Finder
- Expense Tracker
- Recipe Generator
- Emoji Translator
- Regex Query Tool
- Currency Converter
- Pixel Art Generator
- Directory Tree Generator
- Random username Generator
- Roman to Decimal Converter
Some recommended channels to work on more problems and sharpen your coding skills.
- 40 Side Project ideas for Software Engineers
- 10 Coding Prompts for your Portfolio
- 42 Projects to Practice Programming Skills
- More project ideas to improve your coding skills
- Computer Science Projects
- 20+ Projects you can do with Javascript
- 13 Project Ideas for Intermediate Python Developers
- florinpop17/app-ideas
- 49 Ideas for Game Clones to Code