Inspired by aceking007's GitHub post, I'll be attempting to program all 98 of the 100 projects I could identify from their list — using a variety of different languages (especially ones I'm not as familiar with!!).
I'm hoping to gain some more experience with languages I'm currently weak at (or have never used), get some general coding practice to refresh and reinforce my understanding of fundamental computer science concepts, and increase the breadth of my overall coding expertise via completing such a diverse array of projects.
I created this repository on Friday, January 20th, 2023.
Latest Update: As of Wednesday, February 10th, 2023, I have completed (...or at least have made a good faith effort at – i.e. 70% or more completion level) roughly 10 out of the 98 projects listed below.
Currently, I am working on #13 — a lookup tool for converting IP addresses to precise geographical metadata (i.e. country, region, city). At the same time, I have also been tweaking and finalizing my implementation of #64 — a C++11 header library of codec software supporting multiple different encoding schemes.
Primary Language Breakdown: (11)
- Python (4)
- #2, #4, #46, #73
- JavaScript (2)
- #57, #68
- Go (1.5)
- #13, #98
- PHP (1)
- #31
- Ruby (1)
- #10
- C (1)
- #22
- C++ (0.5)
- #64
- FTP Client
- HTTP Server
✓
- Python (1/20/23). A super simple HTTP web server outputting "Hello, World" (or any other arbitrary text) in its response body. Built using the "socket" Python library, as implemented in Blog Post by Ruslan.
- Fully implemented and tested.
- Web Scraper
- Port Scanner
- Python (2/3/23). A light-weight yet multi-threaded port scanner with both UDP and TCP functionalities. Probes a server or host for open, closed, and/or filtered ports. Can be run on specific ports; otherwise, defaults to the top 1000 ports. Built using the "socket" Python library, with additional support from "threading" and "queue" libraries for threaded programming intents. Largely inspired by M57's PieScan and Remzmike's KPorts.
- Fully implemented; needs to be tested and debugged.
- Packet Sniffer
- P2P File Sharing
- Web Search Engine
- Bandwidth Monitor
- Product Landing Page
- Create Your Own Blog
- Ruby (2/3/23). Employing Jekyll — a static site generator written in Ruby — in order to build a simple, HTML-based online blog. Jekyll takes content written in Markdown files, passes it through specified templates, then spits it out as a complete static website – ready to be served. Guides on how to use Jekyll to blog can be found here and here, while its official documentation is located here.
- Framework is fully intact and functional; can be further implemented if desired.
- Your Portfolio Website
- Animated Navigation Toggle
- Country Lookup using IP address
- Go (2/3/23 - Present). A lookup tool accepting .txt or .dat files containing IP address information — returning the corresponding geographical metadata. Supported by Golang's "iphelper" package — touting buffered I/O functionalities and both JSON and binary encoding. Adapted from JohnTech-O's Git repo.
- Not completely implemented; needs to be extensively tested and debugged.
- Chatbot
- Slack Bot
- Twitter Bot
- Messenger Bot
- WhatsApp Butler
- Quiz App
- Firewall
- ToDo List
- Text Editor
✓
- C (2/7/23). A small text editor written in under 1K lines of C in a single file with no dependencies — featuring syntax highlight and search functionalities. Implementation was guided by this instruction booklet, which is largely based on Antirez's "Kilo" — source code available here.
- Fully implemented, tested and debugged. Needs to be commented.
- App Builder
- Drawing App
- Survey App
- Web Browser
- Weather App
- Math Editor
- Music Player
- Stopwatch App
- URL Shortener
- PHP (2/3/23). A simple URL shortener for PHP taking in a URL query parameter to generate shortened URLs. URLs are further saved in a SQL database and accessed via the PDO extension; moreover, HTML responses are generated for all saved URLs. Implementation was strongly guided by Mike Cao's Shorty installation.
- Fully implemented; needs to be tested and debugged.
- 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
- Face Tracking
- Spam Classifier
- Python (2/8/23). A spam classifier utilizing Scikit-Learn, Natural Language Toolkit (NLTK), and Python's "pandas" library to implement multiple classification algorithms of machine learning. Trained and tested on a spambase set of over 5,000 SMS. Can be used to detect whether a message is spam or not, and can also be used to supply detailed information regarding a classifier's accuracy score and/or AUC score — or even plot its confusion matrix. Implementation based on Git repos from VaibhavMagon, Krishnaik06, The-Fang; moreover, this guide by Milind Soorya was helpful.
- Fully implemented. Needs to be tested and debugged.
- Spoiler Blocker
- Music Suggestor
- Machine Translator
- Hand Gesture Recognition
- Video Subtitle Generator
- Automatic Logo Generator
- Movie Recommendation System
- Audio to Sign Language Translator
- Build an OS
- Shuffle Deck
- Sorting Visualizer
- JavaScript (2/7/23). A webpage displaying different sorting algorithm visualizations using the p5.js library. Algorithms can be run on differents-sized arrays — these arrays can be randomized, ordered, shuffled, and/or reversed. Implementation guided by this repo. Additional guidance can be found here and here.
- Fully implemented, but can be expanded to support additional sorting algorithms.
- Static Code Analyzer
- Command Line Terminal
- UML Diagram Generator
- Pathfinding Visualizer
- Version Control System
- Code a Programming Lnaguage
- C++ (2/3/23 - Present). A header-only C++11 library comprised of codec software used to decode/encode various binary-to-text encoding schemes. Currently, this codec supports base64, base64url, base32, base32hex, and hex (AKA base16) — in accordance with RFC 4648 and Crockford's base32. This ended up being quite a hefty project, so its actual implementation and framework are templated and largely based on Tplgy's CppCodec — which offers a consistent, flexible API.
- Almost fully implemented; needs to be commented, tested, and debugged.
- Password Manager
- Password Generator
- Folder Encrypter/Locker
- Password Strength Checker
- JavaScript (2/2/23). A JS plug-in used to check how strong a given password is. Built using the npm package "hsimp-main" for Node.js. Code is borrowed from the MIT-licensed "How Secure Is My Password?" (HSIMP) project — as deployed via the official Security.org toolkit here, with source code available at this Git repo.
- Almost fully implemented; needs to be tested and debugged.
- Pong
- Pong AI
- Risk
- Chess
- Snake
✓
- Python (2/3/23). A simple simulation of the classic arcade snake game using the cross-platform "Pygame" Python module. Runs as a fully contained application within Terminal. Implementation was assisted by guides from Edureka and Geeks for Geeks.
- Fully implemented and tested.
- 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
- 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
✓
- Go (2/8/23). A script that converts decimal numbers to roman numerals (and vice versa). It is a port of the CPAN-package Roman, V1.24. Implementation is based on source code from Chonla's Git repo.
- Fully implemented and tested.
#100ProjectsOfCode