├── LEARNING_RESOURCES.md ├── LICENSE └── README.md /LEARNING_RESOURCES.md: -------------------------------------------------------------------------------- 1 | # Learning Resources 2 | 3 | Apart from the list of projects to code, the most common other query that people have is **where can I learn coding from?** 4 | This file is my attempt to compile a list of resources (tagged with languages/frameworks) that will help you learn how to code and hone your skills. Currently, the list is haphazard, but I'll soon arrange it in some fashion (either alphabetically, or by languages). 5 | 6 | ## What language to learn 7 | 8 | Here is a table adapted from [r/learnprogramming](https://www.reddit.com/r/learnprogramming/wiki/faq#wiki_which_programming_language_should_i_start_with.3F) to help you choose which language best suits your needs and then proceed accordingly. 9 | 10 | | I want to Learn how to... | Consider Learning... | 11 | |---------------------------|----------------------| 12 | | ...make iPhone Apps | Swift and Objective-C | 13 | | ...make Android Apps | Kotlin or Java | 14 | | ...build a website | JavaScript, CSS, HTML | 15 | | ...write Windows desktop applications | C# | 16 | | ...make 2D or 3D games | JavaScript, C# or C++ | 17 | | ...program Arduinos/micro-controllers/robots | C | 18 | | ...do scientific/mathematical computing or data analysis | Julia, Python, R, or MATLAB | 19 | | ...do automation and scripting | Many languages (Python, Ruby, Bash, PowerShell, AutoHotKey, ...) | 20 | | ...build dynamic webpages | HTML, CSS, JavaScript, Ruby on Rails, PHP | 21 | | ...build and manage databases | SQL | 22 | 23 | 32 | 33 | ### MDN (Mozilla Developer Network) 34 | 35 | [MDN](https://developer.mozilla.org/en-US/) is THE resource for anything related to web. It is a massive resource that covers languages and topics like CSS, HTML, web standards, protocols, JavaScript, and other things. Their tutorials are great for beginners to learn the basics, and their references are great for experienced developers when they need a quick find. 36 | 37 | **Free/Paid:** Free 38 | **Languages/Frameworks:** CSS, HTML, JavaScript, and almost everything related to the web. 39 | 40 | ### CSS-Tricks 41 | 42 | [CSS-Tricks](https://css-tricks.com/) is a fantastic resource for CSS (and Design considerations). They have many in-depth guides you can check out. On top of being a great place to learn, they also have a newsletter worth checking out. They're a high quality resource, and if you spend anytime doing front end development they're a resource that will pop up. 43 | 44 | **Free/Paid:** Free 45 | **Languages/Frameworks:** CSS 46 | 47 | ### Marksheet.io 48 | 49 | [Marksheet.io](https://marksheet.io/) is a succinct and straight forward site to refresh your memory about CSS and HTML. IT has good graphic illustrations that will help you visualize what is going on. It is a recommended straight to the point no bullshit resource. 50 | 51 | **Free/Paid:** Free 52 | **Languages/Frameworks:** HTML & CSS 53 | 54 | ### Interneting is Hard 55 | 56 | [Interneting is Hard](https://www.internetingishard.com/) aims to help beginners learn about HTML & CSS with an emphasis on design. It is a detailed and hands on resource. It stresses the importance of writing code, and how that helps you understand what you're doing. If you like getting your hands dirty and really seeing how things work this is a great place to start. 57 | 58 | **Free/Paid:** Free 59 | **Languages/Frameworks:** HTML & CSS 60 | 61 | ### CSS Essential Training 62 | 63 | [CSS Essential Training](https://www.lynda.com/CSS-tutorials/Styling-documents-consistently/5038219/2249020-4.html) is a video course available on lynda, and aimed at teaching the basics of CSS. It is a great CSS 101 learning resource. 64 | 65 | **Free/Paid:** Paid 66 | **Languages/Frameworks:** CSS 67 | 68 | ### The Odin Project 69 | 70 | [The Odin Project](https://theodinproject.com/) is an open source effort to teach web development for free. It has some great projects that you can build and showcase on your GitHub profile. The website is meant to be 'the' resource for web developers and even offers a final course on how to apply for jobs and get hired. 71 | 72 | **Free/Paid:** Free 73 | **Languages/Frameworks:** JavaScript, Node.js, Ruby on Rails, Front end too (HTML, CSS) 74 | 75 | ### Full Stack Open 76 | 77 | [Full Stack Open](https://fullstackopen.com/en/) serves as an introduction to modern web app development with JavaScript. It mainly focuses on building single page applications with ReactJS using REST APIs and Node.js. The course is the same as the course at the Department of Computer Science at the University of Helsinki and also has an associated capstone project. 78 | 79 | **Free/Paid:** Free 80 | **Languages/Frameworks:** ReactJS, JavaScript, TypeScript, MongoDB, Node.js, GraphQL, MERN 81 | 82 | ### App Academy 83 | 84 | [App Academy](https://open.appacademy.io/) boasts to be the #1 coding bootcamp in the US. It has a fair amount of free material (about 1500 hours worth of material) and an engaged community. Focus is on getting people placed at different companies. It also has a mentorship track to make things easier at your end for a price. 85 | 86 | **Free/Paid:** Free / Paid (Mentorship Plan at $29.99) 87 | **Languages/Frameworks:** Ruby on Rails, MERN, JavaScript 88 | 89 | ### Solo Learn 90 | 91 | [Solo Learn](https://www.sololearn.com/) offers short courses that will help you gain a basic understanding of different languages. The courses are ideal for refreshing your memory for a given language or to learn them from the ground up. It also offers short quizzes in between that will help you test your knowledge along the way. 92 | 93 | **Free/Paid:** Free 94 | **Languages/Frameworks:** A *Lot* of languages 95 | 96 | ### Free Code Camp 97 | 98 | [Free Code Camp](https://www.freecodecamp.org/) offers a path to software development even for beginners. The courses take you through interactive code that will help you get a sense of what is happening when you change something in the code. It also has material for coding interview preparation that will help you prepare for interviews. 99 | 100 | **Free/Paid:** Free 101 | **Languages/Frameworks:** Python, JavaScript, Node.js, MongoDB, HTML, CSS 102 | 103 | ### Python Programming 104 | 105 | [Python Programming](https://pythonprogramming.net/) exclusively deals with Python. But it provides a lot of paths to take in order to specialize in a given niche. It starts from the fundamentals of Python and offers courses in Game Development, Quantum Computing, Machine Learning and many other things. 106 | 107 | **Free/Paid:** Free 108 | **Languages/Frameworks:** Python 109 | 110 | ### Devoted Learner 111 | 112 | [Devoted Learner](https://devotedlearner.com/how-to-become-a-machine-learning-engineer/#Introduction) is kind of like a blog. It contains blog posts with resources and tips on how to become a Machine Learning Engineer. A good resource for beginners. 113 | 114 | **Free/Paid:** Free 115 | **Languages/Frameworks:** Python 116 | 117 | ### Python Principles 118 | 119 | [Python Principles](https://pythonprinciples.com/) offers the basics of Python for beginners. It is a well built resource with lots of examples and challenges that will help you understand and put to use the very basics of Python. 120 | 121 | **Free/Paid:** Free / Paid (Pro at $29) 122 | **Languages/Frameworks:** Python 123 | 124 | ### Learn X in Y minutes 125 | 126 | [Learn X in Y minutes](https://learnxinyminutes.com/) is a valuable library of syntax for many different languages. Recommended cheat sheet for languages. 127 | 128 | **Free/Paid:** Free 129 | **Languages/Frameworks:** A *lot* of languages 130 | 131 | ### Rosettacode 132 | 133 | [Rosettacode](http://rosettacode.org/wiki/Rosetta_Code) is a programming [chrestomathy](https://en.wikipedia.org/wiki/Chrestomathy) site. It aims to answer a given question with many different languages to demonstrate how languages are similar and different, and how different languages can lead to different approaches for the same problems. 134 | 135 | **Free/Paid:** Free 136 | **Languages/Frameworks:** A *lot* of languages 137 | 138 | ## References 139 | - [The 5 Resources that helped me become a CSS master - Reddit](https://www.reddit.com/r/learnprogramming/comments/in3jvg/the_5_resources_that_helped_me_become_a_css/) 140 | - [Resources I wish I knew about long ago! - Reddit](https://www.reddit.com/r/learnprogramming/comments/icr9ac/resources_i_wish_i_knew_about_long_ago/) 141 | - [r/learnprogramming FAQs](https://www.reddit.com/r/learnprogramming/wiki/faq) 142 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Arpit Omprakash 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 100ProjectsOfCode 2 | 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. 3 | 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. 4 | 5 | ## Getting Started 6 | To get started with the project ideas: 7 | 1. Pick a project from the list 8 | 2. Create a GitHub repository for the project 9 | 3. Start working, possibly from scratch (reinvent the wheel if you have to!) 10 | 4. When done, test it, and share with the tag #100ProjectsOfCode somewhere in the README of the repo 11 | 5. Fork this repo 12 | 6. Check the completed item, and repeat with another project idea 13 | 14 | ## Categories 15 | 16 | ### General Web & Networking Projects 17 | General Web projects, from building a simple website to building tools for complex and difficult networking tasks like packet sniffing. 18 | - [ ] [FTP Client](#ftp-client) 19 | - [ ] [HTTP Server](#http-server) 20 | - [ ] [Web Scraper](#web-scraper) 21 | - [ ] [Port Scanner](#port-scanner) 22 | - [ ] [Packet Sniffer](#packet-sniffer) 23 | - [ ] [P2P File Sharing](#p2p-file-sharing) 24 | - [ ] [Web Search Engine](#search-engine) 25 | - [ ] [Bandwidth Monitor](#bandwidth-monitor) 26 | - [ ] [Product Landing Page](#product-landing-page) 27 | - [ ] [Create Your Own Blog](#blog) 28 | - [ ] [Your Portfolio Website](#portfolio-website) 29 | - [ ] [Animated Navigation Toggle](#animated-navigation-toggle) 30 | - [ ] [Country Lookup using IP address](#country-lookup-using-ip-address) 31 | ### Bots 32 | Building automated bots is something you really want to try out at some point in your career/life. 33 | - [ ] [Chatbot](#chatbot) 34 | - [ ] [Slack Bot](#slack-bot) 35 | - [ ] [Twitter Bot](#twitter-bot) 36 | - [ ] [Messenger Bot](#messenger-bot) 37 | - [ ] [WhatsApp Butler](#whatsapp-butler) 38 | ### Software & Apps 39 | 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. 40 | - [ ] [Quiz App](#quiz-app) 41 | - [ ] [Firewall](#firewall) 42 | - [ ] [ToDo List](#todo-list) 43 | - [ ] [Text Editor](#text-editor) 44 | - [ ] [App Builder](#application-builder) 45 | - [ ] [Drawing App](#drawing-app) 46 | - [ ] [Survey App](#survey-app) 47 | - [ ] [Web Browser](#web-browser) 48 | - [ ] [Weather App](#weather-app) 49 | - [ ] [Math Editor](#math-editor) 50 | - [ ] [Music Player](#music-player) 51 | - [ ] [Stopwatch App](#stopwatch-app) 52 | - [ ] [URL Shortener](#url-shortener) 53 | - [ ] [Payment System](#payment-system) 54 | - [ ] [Meme Generator](#meme-generator) 55 | - [ ] [Pomodoro Clock](#pomodoro-clock) 56 | - [ ] [Typing Practice](#typing-practice) 57 | - [ ] [Grammar Checker](#grammar-checker) 58 | - [ ] [News Aggregator](#news-aggregator) 59 | - [ ] [Calorie Counter](#calorie-counter) 60 | - [ ] [Traffic Notifier](#traffic-notifier) 61 | - [ ] [Virtual Assistant](#virtual-assistant) 62 | - [ ] [Antivirus Software](#antivirus-software) 63 | - [ ] [Video Call Application](#video-call-application) 64 | - [ ] [Library Management System](#library-management-system) 65 | - [ ] [Relational Database Management System](#relational-database-management-system) 66 | ### Artificial Intelligence 67 | 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. 68 | - [ ] [Face Tracking](#face-tracker) 69 | - [ ] [Spam Classifier](#spam-classifier) 70 | - [ ] [Spoiler Blocker](#spoiler-blocker) 71 | - [ ] [Music Suggestor](#music-suggestor) 72 | - [ ] [Machine Translator](#machine-translator) 73 | - [ ] [Hand Gesture Recognition](#hand-gesture-recognition) 74 | - [ ] [Video Subtitle Generator](#video-subtitle-generator) 75 | - [ ] [Automatic Logo Generator](#automatic-logo-generator) 76 | - [ ] [Movie Recommendation System](#movie-recommendation-system) 77 | - [ ] [Audio to Sign Language Translator](#audio-to-sign-laguage-translator) 78 | ### Theoretical Computer Science 79 | 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. 80 | - [ ] [Build an OS](#build-an-os) 81 | - [ ] [Shuffle Deck](#shuffle-deck) 82 | - [ ] [Sorting Visualizer](#sorting-visualizer) 83 | - [ ] [Static Code Analyzer](#static-code-analyzer) 84 | - [ ] [Command Line Terminal](#command-line-terminal) 85 | - [ ] [UML Diagram Generator](#uml-diagram-generator) 86 | - [ ] [Pathfinding Visualizer](#pathfinding-visualizer) 87 | - [ ] [Version Control System](#version-control-system) 88 | - [ ] [Code a Programming Language](#programming-language) 89 | ### Cryptography 90 | Projects that involve dealing with encryption/decryption or in general computer security. 91 | - [ ] [Codec Software](#codec-software) 92 | - [ ] [Password Manager](#password-manager) 93 | - [ ] [Password Generator](#password-generator) 94 | - [ ] [Folder Encrypter/Locker](#folder-encrypter) 95 | - [ ] [Password Strength Checker](#password-strength-checker) 96 | ### Simulations, Games and Game AI 97 | 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. 98 | - [ ] [Pong](#pong) 99 | - [ ] [Pong AI](#pong-ai) 100 | - [ ] [Risk](#risk) 101 | - [ ] [Chess](#chess) 102 | - [ ] [Snake](#snake) 103 | - [ ] [Tetris](#tetris) 104 | - [ ] [Chess AI](#chess-ai) 105 | - [ ] [Snake AI](#snake-ai) 106 | - [ ] [Map Maker](#map-maker) 107 | - [ ] [Battleship](#battleship) 108 | - [ ] [Flappy Bird](#flappy-bird) 109 | - [ ] [Tic-Tac-Toe](#tic-tac-toe) 110 | - [ ] [Memory Puzzle](#memory-puzzle) 111 | - [ ] [Physics Engine](#physics-engine) 112 | - [ ] [Flappy Bird AI](#flappy-bird-ai) 113 | - [ ] [Tic-Tac-Toe AI](#tic-tac-toe-ai) 114 | - [ ] [Elevator Simulator](#elevator-simulator) 115 | - [ ] [Simulate the World](#simulate-the-world) 116 | - [ ] [Character Generator](#character-generator) 117 | - [ ] [Conway's Game of Life](#game-of-life) 118 | ### Miscellaneous 119 | These were alone in their own categories and I didn't want them to feel alone, so I pooled them together. 120 | - [ ] [Deal Finder](#deal-finder) 121 | - [ ] [Expense Tracker](#expense-tracker) 122 | - [ ] [Recipe Generator](#recipe-generator) 123 | - [ ] [Emoji Translator](#emoji-translator) 124 | - [ ] [Regex Query Tool](#regex-query-tool) 125 | - [ ] [Currency Converter](#currency-converter) 126 | - [ ] [Pixel Art Generator](#pixel-art-generator) 127 | - [ ] [Directory Tree Generator](#directory-tree-generator) 128 | - [ ] [Random username Generator](#random-username-generator) 129 | - [ ] [Roman to Decimal Converter](#roman-to-decimal-converter) 130 | ### Coding Challenges 131 | Some recommended channels to work on more problems and sharpen your coding skills. 132 | - [ ] [Project Euler](#project-euler) 133 | - [ ] [Advent-Of-Code](#advent-of-code) 134 | - [ ] [Kaggle's Titanic Challenge](#kaggle-titanic-challenge) 135 | 136 | 137 | 147 | 148 | ## General Web & Networking Projects 149 | 150 | ### FTP Client 151 | 152 | A simple File Transfer client that uses the FTP (File Transfer Protocol). As a bonus challenge, add support for secure file transfer. It can be a web, desktop, or CLI app. 153 | You can try to first implement TFTP (Trivial File Transfer Protocol) as it's easier. 154 | 155 | **Suggested Language**: C/C++ 156 | **Suggested Frameworks/Tools**: Use [Wireshark](https://github.com/wireshark/wireshark) to observe packets and debug them 157 | **Example Implementation**: [Filezilla](https://filezilla-project.org/sourcecode.php) is extremely complete, [here](https://github.com/jlaffaye/ftp) is a simple Go implementation 158 | 159 | ### HTTP Server 160 | 161 | To understand HTTP better, you need to build an HTTP server. It's not much difficult now a days (with the wealth of information around us). 162 | 163 | **Suggested Language**: Python (or any other language you want to master) 164 | **Suggested Frameworks/Tools**: socket (Python Library) 165 | **Example Implementation**: [Blog Post by Ruslan](https://ruslanspivak.com/lsbaws-part1/) 166 | 167 | ### Web Scraper 168 | 169 | Build a web scraper that takes in a URL/Keyword as input and returns matching results from the web related to the input. You can also build a product searcher or something like that. 170 | 171 | **Suggested Language**: Python (or any other language you want to master) 172 | **Suggested Frameworks/Tools**: Beautifulsoup (Python Library) 173 | **Example Implementation**: 174 | 175 | ### Port Scanner 176 | 177 | Build a port scanner application that can probe a server or host for open ports. You will need some technical knowledge regarding how networks work and how you can scan for ports or classify them. 178 | 179 | **Suggested Language**: Java, C++, Python 180 | **Suggested Frameworks/Tools**: [socket](https://docs.python.org/3/library/socket.html) Python library 181 | **Example Implementation**: [piescan](https://github.com/m57/piescan) is a Python implementation 182 | 183 | ### Packet Sniffer 184 | 185 | A packet sniffer is used to monitor network traffic by examining streams of data packets that flow between computers on a network. To start with the project, study network protocols properly. Then dive into implementing an application that tracks down network packets and parses its content in a human readable form. 186 | 187 | **Suggested Language**: Java, C++ 188 | **Suggested Frameworks/Tools**: 189 | **Example Implementation**: [Wireshark](https://github.com/wireshark/wireshark) is an extremely complete packet sniffer, [herbivore](https://github.com/samatt/herbivore) is a simpler implementation. 190 | 191 | ### P2P File Sharing 192 | 193 | Build an app that will allow for peer-to-peer file sharing securely over the internet. This will help you transfer files securely from one location to another or send something to your friend. 194 | 195 | **Suggested Language**: Java, C++ 196 | **Suggested Frameworks/Tools**: 197 | **Example Implementation**: 198 | 199 | ### Search Engine 200 | 201 | Build a Web Search Engine like Google or Bing. Don't copy from them though :wink: 202 | 203 | **Suggested Language**: web languages. The real work will happen on the backend side with languages like Python, PHP, SQL, Node... Use anything you want for the frontend : HTML, CSS, Javascript... 204 | **Suggested Frameworks/Tools**: Django if you use Python, MySQL for the databases if you need one 205 | **Example Implementation**: [searX](https://github.com/searx/searx) is an open-source search engine coded mostly in Python and Javascript 206 | 207 | ### Bandwidth Monitor 208 | 209 | Build a tool to track how much data you have downloaded or uploaded to the internet. Have it email you weekly reports of your usage (or notify you when you get above a specified usage limit). As a bonus challenge, predict peak usage times. 210 | 211 | **Suggested Language**: 212 | **Suggested Frameworks/Tools**: 213 | **Example Implementation**: 214 | 215 | ### Product Landing Page 216 | 217 | Build the ideal product landing page according to you. Choose a product, build a page and showcase that on your portfolio. 218 | 219 | **Suggested Language**: 220 | **Suggested Frameworks/Tools**: 221 | **Example Implementation**: 222 | 223 | ### Blog 224 | 225 | A blog is a must have for everyone (according to me). Combine that fact with the fact that you learn a lot of things while building your own blog from scratch, and voila! 226 | 227 | **Suggested Language**: JavaScript, Python, Ruby 228 | **Suggested Frameworks/Tools**: Jekyll (for Ruby), Django/Flask (Python) 229 | **Example Implementation**: 230 | 231 | ### Portfolio Website 232 | 233 | If you are ever interested in showcasing the things you have built, build a portfolio website! Building a website to display all the stuff will teach you a lot about website design in general (if you've never built a website before). 234 | 235 | **Suggested Language**: JavaScript, HTML, CSS 236 | **Suggested Frameworks/Tools**: GatsbyJS 237 | **Example Implementation**: 238 | 239 | ### Animated Navigation Toggle 240 | 241 | Although it may seem like a small task, building an animated navigation toggle will teach you a lot about web development. Explore all the ideas that you can play with and see if you can build something truly fascinating! 242 | 243 | **Suggested Language**: JavaScript, CSS 244 | **Suggested Frameworks/Tools**: - 245 | **Example Implementation**: 246 | 247 | ### Country Lookup using IP address 248 | 249 | Can you find the country from a provided IP address? Write a script that can help you with this. For bonus points, try to figure out a more local location from the IP address. 250 | 251 | **Suggested Language**: 252 | **Suggested Frameworks/Tools**: 253 | **Example Implementation**: 254 | 255 | ## Bots 256 | 257 | ### Chatbot 258 | 259 | Build a chatbot that you can talk to when bored. For bonus points use machine learning/AI to make it smart. I suggest you to implement it as a simple CLI application. 260 | 261 | **Suggested Language**: 262 | **Suggested Frameworks/Tools**: 263 | **Example Implementation**: 264 | 265 | ### Slack Bot 266 | 267 | Description 268 | 269 | **Suggested Language**: 270 | **Suggested Frameworks/Tools**: 271 | **Example Implementation**: 272 | 273 | ### Twitter Bot 274 | 275 | Build a bot that will either 276 | - follow people that follow the bot 277 | - retweet tweets containing some specific keywords related to a topic 278 | - retweet tweets containing a specific hashtag 279 | 280 | **Suggested Language**: 281 | **Suggested Frameworks/Tools**: 282 | **Example Implementation**: 283 | 284 | ### Messenger Bot 285 | 286 | Build a bot for messenger that can do some menial tasks too like flip a coin, roll a dice, present the news, and chat with you when bored. 287 | 288 | **Suggested Language**: 289 | **Suggested Frameworks/Tools**: 290 | **Example Implementation**: 291 | 292 | ### WhatsApp Butler 293 | 294 | Build a bot for WhatsApp that can scrape information from the internet like news, wikipedia entries, and other things. Make it able to keep track of some events like your/someone else's birthday and send an automatic message wishing you/the other person. 295 | 296 | **Suggested Language**: 297 | **Suggested Frameworks/Tools**: 298 | **Example Implementation**: 299 | 300 | ## Software & Apps 301 | 302 | ### Quiz App 303 | 304 | The user chooses a category and gets a random set of questions from the given category. Implement a Multiple choice Quiz app to prevent more complications. 305 | 306 | **Suggested Language**: 307 | **Suggested Frameworks/Tools**: 308 | **Example Implementation**: 309 | 310 | ### Firewall 311 | 312 | Build a firewall software that can regulate the network connections for the user and also block/notify of any suspicious action from any website/internal software/external agent. 313 | 314 | **Suggested Language**: 315 | **Suggested Frameworks/Tools**: 316 | **Example Implementation**: 317 | 318 | ### ToDo List 319 | 320 | Build a To Do app that can track the various stages of a given work (todo, ongoing, completed). For bonus points, make it work with recurring tasks and incorporate task scheduling (when to do what/a deadline for tasks). 321 | 322 | **Suggested Language**: 323 | **Suggested Frameworks/Tools**: 324 | **Example Implementation**: 325 | 326 | ### Text Editor 327 | 328 | Build a simple text editor that can help you open, read from and write to text files. For bonus points incorporate features like the find tool and regex search and replace. 329 | 330 | **Suggested Language**: JavaScript, Java 331 | **Suggested Frameworks/Tools**: Electron (JavaScript framework) 332 | **Example Implementation**: Atom Editor, Notepad++ 333 | 334 | ### Application Builder 335 | 336 | This is probably the hardest one on the list and the most vague one too. Design a system that takes in text input and generates applications (or at least application interfaces) based on the text description. You can also use a drag-and-drop like feature to let users build the app. 337 | 338 | **Suggested Language**: - 339 | **Suggested Frameworks/Tools**: - 340 | **Example Implementation**: [AppGyver](https://www.appgyver.com/) is a good example of no code app builder 341 | 342 | ### Drawing App 343 | 344 | Build an app that lets the user draw anything and save it as an image. For extra points, add colouring and other cool things like animations. 345 | 346 | **Suggested Language**: 347 | **Suggested Frameworks/Tools**: 348 | **Example Implementation**: 349 | 350 | ### Survey App 351 | 352 | Build an app/web app that will let anyone create survey questions and circulate it via email to record responses and then analyze the data collected. 353 | 354 | **Suggested Language**: 355 | **Suggested Frameworks/Tools**: 356 | **Example Implementation**: 357 | 358 | ### Web Browser 359 | 360 | Build a piece of software that will help you browse any HTML page. For bonus points, add additional features like those in Chrome and Firefox. 361 | 362 | **Suggested Language**: 363 | **Suggested Frameworks/Tools**: 364 | **Example Implementation**: 365 | 366 | ### Weather App 367 | 368 | Build an app that gets the weather at your location in the current time. You can either use a web scraper in the background to collect the data or use a weather API. 369 | 370 | **Suggested Language**: 371 | **Suggested Frameworks/Tools**: 372 | **Example Implementation**: 373 | 374 | ### Math Editor 375 | 376 | Build an app that will properly format equations that a user inputs. I personally find it really inconvenient to work with a special software to just write and display equations properly like Latex, thus, if you build something that can convert plain English text to properly formatted equations, ping me! 377 | 378 | **Suggested Language**: 379 | **Suggested Frameworks/Tools**: 380 | **Example Implementation**: 381 | 382 | ### Music Player 383 | 384 | Build a music player app that can play music from mp3 files and also have functionality for forward, rewind, pause, and play. 385 | 386 | **Suggested Language**: 387 | **Suggested Frameworks/Tools**: 388 | **Example Implementation**: 389 | 390 | ### Stopwatch App 391 | 392 | Build a stopwatch app/web app. It should also be able to lap time. 393 | 394 | **Suggested Language**: 395 | **Suggested Frameworks/Tools**: 396 | **Example Implementation**: 397 | 398 | ### URL Shortener 399 | 400 | Build a web app that can shorten any URL that the user provides. You can either code an algorithm that shortens and stores the user provide URL or use an API. 401 | 402 | **Suggested Language**: 403 | **Suggested Frameworks/Tools**: 404 | **Example Implementation**: 405 | 406 | ### Payment System 407 | 408 | Build a payment interface that can deal with fake cash (better if you can deal with real currency, although I don't know if you have to take extra steps for that). Users should be able to receive and send money, and also check their current balance. 409 | 410 | **Suggested Language**: 411 | **Suggested Frameworks/Tools**: 412 | **Example Implementation**: 413 | 414 | ### MEME Generator 415 | 416 | Build an app/web app that will overlay text over an image, so that users can build memes. 417 | 418 | **Suggested Language**: 419 | **Suggested Frameworks/Tools**: 420 | **Example Implementation**: 421 | 422 | ### Pomodoro Clock 423 | 424 | Build a Pomodoro timer that will help you take breaks at proper times while doing a task. For bonus points include different Pomodoro timer formats. 425 | 426 | **Suggested Language**: 427 | **Suggested Frameworks/Tools**: 428 | **Example Implementation**: 429 | 430 | ### Typing Practice 431 | 432 | Build an app that lets you practice typing. Make it generate random sentences and see how fast you can type the sentences. Typing is something that many developers completely ignore, but it is one of the most important skills that someone working with computers should have. 433 | 434 | **Suggested Language**: 435 | **Suggested Frameworks/Tools**: 436 | **Example Implementation**: 437 | 438 | ### Grammar Checker 439 | 440 | Build a software that will spell check and check simple grammatical errors in any text you write. For additional points/complexity, try to guess the mood (happy text, formal letter, etc) of the text and suggest appropriate changes. 441 | 442 | **Suggested Language**: 443 | **Suggested Frameworks/Tools**: 444 | **Example Implementation**: 445 | 446 | ### News Aggregator 447 | 448 | Build an app that will present you daily news from credible sources. Make sure you pool unique information about a given news headline from different sites to remove any bias that may be present in a given source. 449 | 450 | **Suggested Language**: 451 | **Suggested Frameworks/Tools**: 452 | **Example Implementation**: 453 | 454 | ### Calorie Counter 455 | 456 | Build an app that will track the amount of calories that you eat everyday. Try to also incorporate information about other macro and micro nutrients to provide a more complete picture. 457 | 458 | **Suggested Language**: 459 | **Suggested Frameworks/Tools**: 460 | **Example Implementation**: 461 | 462 | ### Traffic Notifier 463 | 464 | Build an app (phone app will be better) that finds how congested one route is and then suggests you a better route to take to your destination. 465 | 466 | **Suggested Language**: Java, Kotlin, Swift 467 | **Suggested Frameworks/Tools**: Android Studio 468 | **Example Implementation**: 469 | 470 | ### Virtual Assistant 471 | 472 | Build a virtual assistant that will help you carry out tasks like calling people, scheduling tasks, creating todo lists, taking notes, .. you get the point. 473 | 474 | **Suggested Language**: 475 | **Suggested Frameworks/Tools**: 476 | **Example Implementation**: 477 | 478 | ### Antivirus Software 479 | 480 | Build an antivirus software that will protect you from viruses and other computer worms and stuff. Make sure you update it frequently to deal with the newer viruses. 481 | 482 | **Suggested Language**: 483 | **Suggested Frameworks/Tools**: 484 | **Example Implementation**: 485 | 486 | ### Video Call Application 487 | 488 | Build an app that can let you video call anyone anywhere over the internet. 489 | 490 | **Suggested Language**: Python, Java, C++ for a desktop app 491 | **Suggested Frameworks/Tools**: 492 | **Example Implementation**: [Nextcloud Talk](https://github.com/nextcloud/spreed) and [Jitsi](https://github.com/jitsi/jitsi-meet) are open-source video call software 493 | 494 | ### Library Management System 495 | 496 | Build an app for a hypothetical (or better, a real one near you) library that will help in management. You need to keep track of books you have, books to order, people with access to the library, books borrowed, returned and other related tasks. 497 | 498 | **Suggested Language**: 499 | **Suggested Frameworks/Tools**: 500 | **Example Implementation**: 501 | 502 | ### Relational Database Management System 503 | 504 | Build your own database management system like MySQL or PostgreSQL. It doesn't have to be compatible with them, but it does need to help users manage their data efficiently and create relational tables. 505 | 506 | **Suggested Language**: 507 | **Suggested Frameworks/Tools**: 508 | **Example Implementation**: 509 | 510 | ## Artificial Intelligence 511 | 512 | ### Face Tracker 513 | 514 | Build a piece of software that will analyse pictures (or better, live cam feed) and tag faces in the images as face or with a box. 515 | 516 | **Suggested Language**: Python (or any other language you want to learn) 517 | **Suggested Frameworks/Tools**: OpenCV 518 | **Example Implementation**: 519 | 520 | ### Spam Classifier 521 | 522 | Build a spam classifier that filters ads and other unrequired emails from people that you don't really want to look at. 523 | 524 | **Suggested Language**: 525 | **Suggested Frameworks/Tools**: 526 | **Example Implementation**: 527 | 528 | ### Spoiler Blocker 529 | 530 | Build a browser extension that blocks movie spoilers on websites. I put it in AI as you have to think of a changing algorithm that should be smart enough to identify spoilers from a piece of text. 531 | 532 | **Suggested Language**: 533 | **Suggested Frameworks/Tools**: 534 | **Example Implementation**: 535 | 536 | ### Music Suggestor 537 | 538 | Bored of the same songs but don't know what to try next? Build an AI to suggest you music based on your taste that you are more likely to like. 539 | 540 | **Suggested Language**: 541 | **Suggested Frameworks/Tools**: 542 | **Example Implementation**: 543 | 544 | ### Machine Translator 545 | 546 | Build an app to translate text from one language to another. For bonus points include an image translator that can get text from image and translate it. 547 | 548 | **Suggested Language**: 549 | **Suggested Frameworks/Tools**: 550 | **Example Implementation**: 551 | 552 | ### Hand Gesture Recognition 553 | 554 | Build a piece of software that can recognise gestures from a camera video and then carry out certain tasks based on the gesture. 555 | 556 | **Suggested Language**: 557 | **Suggested Frameworks/Tools**: 558 | **Example Implementation**: 559 | 560 | ### Video Subtitle Generator 561 | 562 | Input a video and get a subtitle! Build a software that automatically creates subtitles from a provided video. It may seem difficult in the beginning, but look up Natural Language Processing to see how far machines already are with regard to understanding human language. 563 | 564 | **Suggested Language**: Python (As it would be really easy to implement with available libraries) 565 | **Suggested Frameworks/Tools**: [autosub](https://pypi.org/project/autosub/) 566 | **Example Implementation**: You can refer the documentation [here](https://github.com/agermanidis/autosub/wiki) or can check the steps provided [here](http://alttechn.blogspot.com/2018/04/blog-post.html). 567 | 568 | ### Automatic Logo Generator 569 | 570 | Build a software that takes in a company name and some related keywords to generate a brand new logo for the user. Make the logo editable so the user can make any changes if they don't like the generated output. 571 | 572 | **Suggested Language**: 573 | **Suggested Frameworks/Tools**: 574 | **Example Implementation**: 575 | 576 | ### Movie Recommendation System 577 | 578 | Build a recommendation system that lets you or any users choose the next movie that you want to watch. Instead of copying an existing movie recommender with a well studied algorithm, try to come up with your own algorithm and test it out. 579 | 580 | **Suggested Language**: Python (or any other language you are comfortable with) 581 | **Suggested Frameworks/Tools**: - 582 | **Example Implementation**: There are many, [Netflix](https://www.netflix.com/) recommender system, [Movie lens](https://movielens.org/), etc 583 | 584 | ### Audio to Sign Language Translator 585 | 586 | Similar to the video translator, but now you need to translate an audio to sign language. The sign language part can be in the form of a series of images or a video. 587 | 588 | **Suggested Language**: 589 | **Suggested Frameworks/Tools**: 590 | **Example Implementation**: 591 | 592 | ## Theoretical Computer Science 593 | 594 | ### Build an OS 595 | 596 | This project will be technically challenging and will deepen your understanding of how computers and operating systems work. Building an OS from the ground up is a really daunting task but you will surely find a way to do it. 597 | 598 | **Suggested Language**: low-level languages like C/C++. 599 | **Suggested Frameworks/Tools**: - 600 | **Example Implementation**: [LFS](http://www.linuxfromscratch.org/) is a project that explain every step to create a Linux OS 601 | 602 | ### Shuffle Deck 603 | 604 | Build a web app to visualize the different shuffling algorithms that can be used to shuffle a standard deck of cards. 605 | 606 | **Suggested Language**: 607 | **Suggested Frameworks/Tools**: 608 | **Example Implementation**: 609 | 610 | ### Sorting Visualizer 611 | 612 | Build a webpage/video that will visualize the different sorting algorithms. You can use different kinds of visualizations: dots, bars, colour bars, circularly scattered points, and so on. 613 | 614 | **Suggested Language**: Processing, JavaScript 615 | **Suggested Frameworks/Tools**: P5.js (JavaScript) 616 | **Example Implementation**: 617 | 618 | ### Static Code Analyzer 619 | 620 | Make a software that will go through your code (without executing it) and check for any inconsistencies or errors (syntax errors, indentation, etc) that may cause any problems during execution. 621 | 622 | **Suggested Language**: Any language you feel comfortable with 623 | **Suggested Frameworks/Tools**: 624 | **Example Implementation**: 625 | 626 | ### Command Line Terminal 627 | 628 | If you are building the Operating System, you will surely need a Command Line Terminal. Try to clone the bash shell or Windows PowerShell as an independent project to make it easier while you build your own OS. 629 | 630 | **Suggested Language**: 631 | **Suggested Frameworks/Tools**: 632 | **Example Implementation**: 633 | 634 | ### UML Diagram Generator 635 | 636 | Write a script that goes through your OOPS code and creates a well-formatted UML diagram for your code. 637 | 638 | **Suggested Language**: 639 | **Suggested Frameworks/Tools**: 640 | **Example Implementation**: 641 | 642 | ### Pathfinding Visualizer 643 | 644 | Make a visualizer for the different pathfinding algorithms. Add this to a maze maker and you have a program that can generate and solve mazes. 645 | 646 | **Suggested Language**: Processing, JavaScript 647 | **Suggested Frameworks/Tools**: P5.js (JavaScript) 648 | **Example Implementation**: 649 | 650 | ### Version Control System 651 | 652 | Make a proper version control system like git that can keep track of any changes that you make to your project. 653 | 654 | **Suggested Language**: 655 | **Suggested Frameworks/Tools**: 656 | **Example Implementation**: 657 | 658 | ### Programming Language 659 | 660 | Code a programming language from scratch. This project will give you great insights into why languages are structured the way they are and which languages suit which tasks better. There are quite a few programming languages, thus, incorporate some really weird (or helpful) features to make your language stand out (e.g. check out [brainfuck](https://en.wikipedia.org/wiki/Brainfuck)). 661 | 662 | **Suggested Language**: 663 | **Suggested Frameworks/Tools**: 664 | **Example Implementation**: 665 | 666 | ## Cryptography 667 | 668 | ### Codec Software 669 | 670 | Build a software that will encrypt and decrypt text for you. Incorporate quite a few algorithms to provide flexibility to the user. 671 | 672 | **Suggested Language**: C, C++, Java, Python 673 | **Suggested Frameworks/Tools**: 674 | **Example Implementation**: 675 | 676 | ### Password Manager 677 | 678 | Build a software that can manage the different passwords that you use on different websites. For bonus points incorporate a random password generator. 679 | 680 | **Suggested Language**: 681 | **Suggested Frameworks/Tools**: 682 | **Example Implementation**: 683 | 684 | ### Folder Encrypter 685 | 686 | Build a piece of software that can encrypt and lock a selected folder. The contents of the folder should not be accessible/copied/moved without the correct password. 687 | 688 | **Suggested Language**: 689 | **Suggested Frameworks/Tools**: 690 | **Example Implementation**: 691 | 692 | ### Password Strength Checker 693 | 694 | Build a website/app that will check how strong a given password is. To make it more fancy, incorporate a good metric of how strong a password is (check out the example). 695 | 696 | **Suggested Language**: 697 | **Suggested Frameworks/Tools**: 698 | **Example Implementation**: [How secure is my Password?](https://howsecureismypassword.net/) 699 | 700 | ## Simulations, Games and Game AI 701 | 702 | ### Pong 703 | 704 | Code the game of [pong](https://en.wikipedia.org/wiki/Pong). Make it multiplayer and visually appealing. 705 | 706 | **Suggested Language**: Python (or any other language of choice) 707 | **Suggested Frameworks/Tools**: Pygame (Python) 708 | **Example Implementation**: 709 | 710 | ### Pong AI 711 | 712 | Add to the Pong program you created above. Create an AI opponent to play against in a single player mode. 713 | 714 | **Suggested Language**: Python (or any other language of choice) 715 | **Suggested Frameworks/Tools**: TensorFlow, PyTorch, openai/gym 716 | **Example Implementation**: 717 | 718 | ### Risk 719 | 720 | Try coding the classic board game of [Risk](https://en.wikipedia.org/wiki/Risk_(game)). Make sure you know all the rules and understand the game properly before you code it. 721 | 722 | **Suggested Language**: 723 | **Suggested Frameworks/Tools**: 724 | **Example Implementation**: 725 | 726 | ### Chess 727 | 728 | Code the game of chess from the ground up. Build a board, the pieces (you can use images for this part). Code in the rules and make sure you allow no invalid moves. 729 | 730 | **Suggested Language**: JavaScript, Python, any other language you want to master 731 | **Suggested Frameworks/Tools**: 732 | **Example Implementation**: [Chessboard.js](https://chessboardjs.com/) 733 | 734 | ### Snake 735 | 736 | This is one of the simplest items on the list. For an additional challenge, try generating different maps to play in. 737 | 738 | **Suggested Language**: Any language that you feel comfortable with 739 | **Suggested Frameworks/Tools**: 740 | **Example Implementation**: 741 | 742 | ### Tetris 743 | 744 | Code the game of Tetris starting from the Tetrominoes to the game interface. A web app is better as it will let you play from anywhere. For additional challenge try to implement a simple HTML and JavaScript version without any additional frameworks or libraries to help. 745 | 746 | **Suggested Language**: JavaScript, HTML 747 | **Suggested Frameworks/Tools**: 748 | **Example Implementation**: 749 | 750 | ### Chess AI 751 | 752 | Now that you have most likely built the chess game, build an AI that you can play against. For inspiration look into the examples provided. The challenge here is to make an AI that is fast enough to play against. Most simple AIs for chess are just really slow (take about a minute or more for a move). Make your chess engine interface with other programs such via the [Universal Chess Interface](https://en.wikipedia.org/wiki/Universal_Chess_Interface). Then you can test it out against other bots/players online. 753 | 754 | **Suggested Language**: Python, JavaScript 755 | **Suggested Frameworks/Tools**: Chessboard.js (JavaScript) 756 | **Example Implementation**: [Stockfish AI](https://stockfishchess.org/), [Leela Chess Zero](https://lczero.org/) 757 | 758 | ### Snake AI 759 | 760 | Build a simple snake AI that plays snake. For an added challenge, generate random maps and then train your AI to play in any random map that you generate. 761 | 762 | **Suggested Language**: 763 | **Suggested Frameworks/Tools**: 764 | **Example Implementation**: 765 | 766 | ### Map Maker 767 | 768 | Build a simple program that will generate random terrain maps through [procedural generation](https://en.wikipedia.org/wiki/Procedural_generation) with a user supplied seed. 769 | 770 | **Suggested Language**: 771 | **Suggested Frameworks/Tools**: 772 | **Example Implementation**: 773 | 774 | ### Battleship 775 | 776 | Build the classic game of battleship. You can build a CLI app or a much better app with graphics using any 2D graphics module. 777 | 778 | **Suggested Language**: Python (or any language you want to learn) 779 | **Suggested Frameworks/Tools**: Pygame (Python) 780 | **Example Implementation**: 781 | 782 | ### Flappy Bird 783 | 784 | This is one of the simplest difficult games that you can build. You can use images for pipes and the bird or generate your own custom bird and pipes for the project. 785 | 786 | **Suggested Language**: 787 | **Suggested Frameworks/Tools**: 788 | **Example Implementation**: 789 | 790 | ### Tic Tac Toe 791 | 792 | Build a CLI app for tic-tac-toe or a graphical interface. One of the interesting ideas is to let the user draw Xs and Os and then let the machine automatically identify if you drew an X or an O. 793 | 794 | **Suggested Language**: 795 | **Suggested Frameworks/Tools**: 796 | **Example Implementation**: 797 | 798 | ### Memory Puzzle 799 | 800 | Implement a classic memory puzzle where the user has to click on two similar cards to eliminate them. Shuffle the cards randomly in the beginning and give the user a fixed number of chances or a fixed time to clear the board. 801 | 802 | **Suggested Language**: 803 | **Suggested Frameworks/Tools**: 804 | **Example Implementation**: 805 | 806 | ### Physics Engine 807 | 808 | Video Games work on [physics engines](https://en.wikipedia.org/wiki/Physics_engine). Build your own. You can later use this engine to build games or carry out simulations. Try building a 2D or 3D physics engine that can handle collision, movement, acceleration, gravity, and other forces in the system. You may need to first understand a bit of physics to be able to build something, so take your time for this one. 809 | 810 | **Suggested Language**: Processing (any other language that you feel comfortable with works too) 811 | **Suggested Frameworks/Tools**: 812 | **Example Implementation**: 813 | 814 | ### Flappy Bird AI 815 | 816 | Design an AI for the flappy bird game. Try out a few learning algorithms to train your network - Q-Learning, NEAT, etc. Build the perfect AI that will play flappy bird better than you (or anyone else) ever can. 817 | 818 | **Suggested Language**: 819 | **Suggested Frameworks/Tools**: 820 | **Example Implementation**: 821 | 822 | ### Tic Tac Toe AI 823 | 824 | Build an AI that is unbeatable (either wins always or at least draws) in tic-tac-toe. Instead of just hardcoding what move to play when, build an AI that learns how to play and then devises strategies to win. 825 | 826 | **Suggested Language**: 827 | **Suggested Frameworks/Tools**: 828 | **Example Implementation**: 829 | 830 | ### Elevator Simulator 831 | 832 | Build a simulation for an elevator. This may seem like a random simulation, but you need to think a lot before implementing something regarding this, which floor to go to when two buttons are pressed? Is there any change if you add a preference for going up or going down? and so on. 833 | 834 | **Suggested Language**: 835 | **Suggested Frameworks/Tools**: 836 | **Example Implementation**: 837 | 838 | ### Simulate the World 839 | 840 | Build a simulation of the whole world. Try to be as detailed as you can. Keep it simple when you feel stuck and slowly improve on it. Treat it as a self-sustaining game if it makes things easier. For bonus points, add an AI to the system to let it work on its own. 841 | 842 | **Suggested Language**: C++ (or C - you will need a fast language for the simulation) 843 | **Suggested Frameworks/Tools**: Unity (Good for visualizations) 844 | **Example Implementation**: [The Bibites](https://www.youtube.com/watch?v=myJ7YOZGkv0&ab_channel=TheBibites), [Simulating Ecosystem](https://www.youtube.com/watch?v=r_It_X7v-1E&ab_channel=SebastianLague) by Sebastian Lague 845 | 846 | ### Character Generator 847 | 848 | Build a tool that will generate random characters for games that you play/build like Pathfinder or Divinity: Original Sin. First implement a random character generator and then tweak it to make characters that you will like (add an AI). 849 | 850 | **Suggested Language**: 851 | **Suggested Frameworks/Tools**: 852 | **Example Implementation**: 853 | 854 | ### Game of Life 855 | 856 | [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) simulates the lives of simple cells that obey algorithmic laws. You can read the algorithmic rules from the wikipedia page and implement them. Make the program capable of graphical rendering to display the end product. 857 | 858 | **Suggested Language**: Processing, JavaScript 859 | **Suggested Frameworks/Tools**: P5.js (JavaScript) 860 | **Example Implementation**: 861 | 862 | ## Miscellaneous 863 | 864 | ### Deal Finder 865 | 866 | Build a simple web app to notify you when an item you covet goes on sale for a good price. You can use a web scraper to pull the item's product page and notify you of any price changes. 867 | 868 | **Suggested Language**: 869 | **Suggested Frameworks/Tools**: 870 | **Example Implementation**: 871 | 872 | ### Expense Tracker 873 | 874 | Create a simple interface (web app/phone app) you can use to add and categorize your expense. Generate monthly reports based on the inputs and write custom alerts for things like, "spending too much on coffee... as always". 875 | 876 | **Suggested Language**: 877 | **Suggested Frameworks/Tools**: 878 | **Example Implementation**: 879 | 880 | ### Recipe Generator 881 | 882 | The app (or service) should generate new recipes/scrapes recipes from the web. So when you cook by its recipe, you rate it to tell it how good the recipe was. 883 | 884 | **Suggested Language**: 885 | **Suggested Frameworks/Tools**: 886 | **Example Implementation**: 887 | 888 | ### Emoji Translator 889 | 890 | Build a browser extension that will translate any provided sentence into a combination of emojis. You can use the extension to automatically change texts that a user sends via messaging or email or even use it to aid in writing blog posts. 891 | 892 | **Suggested Language**: JavaScript 893 | **Suggested Frameworks/Tools**: 894 | **Example Implementation**: 895 | 896 | ### Regex Query Tool 897 | 898 | Build a search tool that implements Regular Expressions. With it you can easily search for text matching a pattern in websites or documents that you may be writing or browsing. 899 | 900 | **Suggested Language**: JavaScript 901 | **Suggested Frameworks/Tools**: 902 | **Example Implementation**: 903 | 904 | ### Currency Converter 905 | 906 | Code a script that scrapes the currency conversion rate and then converts from a given currency to another suing the current market rate. 907 | 908 | **Suggested Language**: Python, JavaScript 909 | **Suggested Frameworks/Tools**: 910 | **Example Implementation**: 911 | 912 | ### Pixel Art Generator 913 | 914 | Code a script that takes in a picture and then creates the Pixel Art from the image. You can achieve this by downsizing the image. You should also be able to generate random art using this script. 915 | 916 | **Suggested Language**: 917 | **Suggested Frameworks/Tools**: 918 | **Example Implementation**: 919 | 920 | ### Directory Tree Generator 921 | 922 | Generate a tree like structure using the directories present in a given path by the user. This allows you to see the positioning of files and directories. We are visual animals and thus, visual depictions of directories are more understandable. 923 | 924 | **Suggested Language**: 925 | **Suggested Frameworks/Tools**: 926 | **Example Implementation**: 927 | 928 | ### Random Username Generator 929 | 930 | Write a script to generate random usernames that you can use in games or various other places. 931 | 932 | **Suggested Language**: Python or any other language 933 | **Suggested Frameworks/Tools**: Random (Python Library) 934 | **Example Implementation**: 935 | 936 | ### Roman to Decimal Converter 937 | 938 | Write a script that converts decimal numbers to roman numerals and vice versa. This may seem like an easy task but I assure you its not that easy. Give it a try. 939 | 940 | **Suggested Language**: Python or any other language 941 | **Suggested Frameworks/Tools**: 942 | **Example Implementation**: 943 | 944 | ## Coding Challenges 945 | 946 | ### Project Euler 947 | 948 | [Project Euler](https://projecteuler.net/) contains mathematical challenges that require programming tools to be solved. There are over 700 problems that you can solve, I urge you to document each solution in a properly organized way (probably build a repo for the solutions) so that you can showcase them online. 949 | 950 | **Suggested Language**: Any language you want to practice 951 | 952 | ### Advent of Code 953 | 954 | [Advent of Code](https://adventofcode.com/) challenges occur every year in the days leading up to Christmas. They include lots of fun programming challenges that can help you develop your chops in a programming language that you want to master. 955 | 956 | **Suggested Language**: Any language you want to master 957 | 958 | ### Kaggle Titanic Challenge 959 | 960 | Kaggle offers fascinating challenges to introduce you to the basics of machine learning with Python or R: Use a real dataset from the [Titanic passenger log](https://www.kaggle.com/c/titanic) to predict which passengers were most likely to survive the disaster. 961 | 962 | **Suggested Language**: Python or R 963 | 964 | 965 | ## References 966 | - [40 Side Project ideas for Software Engineers](https://www.codementor.io/@npostolovski/40-side-project-ideas-for-software-engineers-g8xckyxef) 967 | - [42 Projects to Practice Programming Skills](https://itnext.io/42-projects-to-practice-programming-skills-6f5acc10fec0) 968 | - [More project ideas to improve your coding skills](https://www.freecodecamp.org/news/more-project-ideas-to-improve-your-coding-skills-99f48d09bb4b/) 969 | - [Computer Science Projects](https://www.geeksforgeeks.org/computer-science-projects/) 970 | - [13 Project Ideas for Intermediate Python Developers](https://realpython.com/intermediate-python-project-ideas/) 971 | - [florinpop17/app-ideas](https://github.com/florinpop17/app-ideas) 972 | - [49 Ideas for Game Clones to Code](https://inventwithpython.com/blog/2012/02/20/i-need-practice-programming-49-ideas-for-game-clones-to-code/) 973 | --------------------------------------------------------------------------------