Software Project Ideas
💡

Software Project Ideas

Published
May 9, 2019
Tags
Notes
Author
Stephen Wu
💡
Here are 30+ software project ideas I’ve been collecting for the past several years! These range from educational projects to hackathon ideas to possible services. I haven’t updated this in a while! Some new project ideas I’d add in 2022 are: building Notion apps with
react-notion-x
NotionXUpdated Jun 15, 2024
and the Notion API, and exploring cool use-cases OpenAI’s DALL-E and GPT! - Stephen, 2022
Projects that I've personally done are not on this list, check out the Projects section for those. Some of these projects aren't super viable or well-formed, and a lot of these are definitely done already, but maybe you could do it better or for learning. :)
These ideas are free for grabs if you want to take on or commercialize anything here. A lot of these are things that I thought would be useful for me, so if you do make them or want some more info or guidance, let me know!

Categories and Tags

Category:
  • Development: Software development or DevOps related
  • Education: Education or teaching related
  • Games: Video, board, or mobile game related
  • Music: Music or MIDI related
  • Productivity: Useful work or productivity tools
  • Services: Other SaaS projects
  • Other: Everything else
Tags:
  • [#Frontend]: Just web or UI-based with no backend
  • [#Fullstack]: Includes a frontend and backend server
  • [#Mobile]: Mobile app
  • [#Scripting]: Small scripts or servers
  • [#Voice]: Uses some kind of voice recognition, e.g. Alexa, Google Home
  • [#Browser]: Browser extension
  • [#Dataviz]: Data visualization
  • [#Hardware]: Uses hardware, e.g. Arduino, sensors
Difficulty:
  • [#Easy]: Good beginner projects
  • [#Hard]: Pretty difficult projects
  • [#🤷‍♂]: Seems really hard / I have no clue how to make this happen
Size:
  • [#Small]: Smaller project
  • [#Large]: Large project
  • [#Extend]: Lots of room for expansion, integrations, etc.
  • [#Fork]: Fork an existing open-source project
Other:
  • [#AI]: Applied artificial-intelligence or natural language processing
  • [#Graphics]: Applied graphics rendering
  • [#Math]: Math-y or stats related
Feel free to Ctrl/Cmd+F to find relevant tags!

Project Ideas

Project Ideas
Development
Name
Tags
Text
#Scripting
• Having a restrictive open-source license can be problematic, and some custom license terms might be restrictive without you realizing. Without following proper licensing terms, there might be some big problems 😢. • Given a list of requirements (either from NPM package.json or python's requirements.txt or others), identify the licenses (if applicable) of every dependency and their recursive dependencies. • Identify all common licenses (scanning over the text for anomalies) and point out outliers, explain stipulations. • [#Dataviz] Create visualizations of the data (maybe as a tree). • See: opensource.org/licenses and choosealicense.com.
#Scripting
#Fullstack
#Large
#🤷‍♂️
#Scripting
#Frontend
#Dataviz
• Given a local directory, search through all the .js files and identify what browser compatibility the codebase is at, using the CanIUse APIs (e.g. isNaN is not supported in any IE version or ~7% of user browsers). • Point to exact functions and lines that cause problems, visualize this data. • This isn't as useful anymore with popular transpiling and polyfill libraries like Babel and less Internet Explorer usage, but can be useful for smaller or legacy projects or simply for education purposes. • MVP: Do a simple keyword search for features; this will have a high false positive rate but will give you a place to start. Then improve upon keyword search!
#Fullstack
#Large
#Extend
Motivation: An issue with programming tutorials is that it can be difficult to follow along with the code in the video. Build a recording and user-consumption tool, letting users view the video's code in a supplemental code editor. • The recorder might be in the form of an Atom/Visual Studio Code package, and the user-consumption side can be a [#Browser] extension that attaches to YouTube instead of a whole new video platform, which is a lot of work. • This is interesting from a data structures perspective, since there's versioning (like Google Docs but with more timestamps). "Recording" code also gets really tricky with video editing, as timestamps get all messed up. • MVP: Start out by having a limited number of manual-snapshots of code per video (<5). Add markers to the video as to where these snapshots are. • Extend: Then expand to building a real-time code recorder and client. [#Hard]
Education
Name
Tags
Text
#Fullstack
#Large
#Extend
#AI
Motivation: Most physical and online lessons are taught in a linear way, teaching every student in the same way. By getting a sense of student mastery, you can adjust what content to show them, additional resources to provide, and the phrasing to use. • Make it easy for people to create and consume these lessons. • MVP: Let users select their mastery level from [Beginner, Intermediate, Advanced] and let educators "block" textual content into what's shown to each group. (e.g. This block of content is for Beginner and Intermediate. This is for Advanced only. ... and so on.) • Moonshot: Add assessment tools that determine mastery, let each group view other explanations if desired. Do this for videos instead of text-based content. • See: Interactive Web-based Textbooks.
#Fullstack
#Large
#Hard
#Extend
#Fork
Jupyter Notebook / Lab is a pretty great open-source software that can also be used for teaching people Python (and other languages), but it's not very intuitive for beginning programmers. • There's a lot of UI bloat if you don't need all the features, confusing flow, and missing features that are useful for education. • Create separate clients for educators and students. This might also be done as a [#Browser] extension or [#Frontend] work. • For educators: Let them "lock" text cells or portions of code cells so students can't edit them. Let them specify "default" state for given code cells. • For students: Let them add "Note" text cells that are a different color. Let users reset the state of cells to their defaults. Simplify the toolbar, removing unnecessary items. • Simplify state management somehow; it can be confusing for state to be carried over cell to cell. Maybe have "global" cells that are always in memory and every other cell has independent state.
#Fullstack
#Large
#Extend
• Build a platform for writing interactive textbooks. • Start with a Markdown editor with chapters and pages support. • Iterate with equation editors, interactive tooltips and visualizations, questions & answers modules, student progress tracking, assignments, and other tools. • Inspiration: Codio, Paul's Online Notes, Brilliant, TopHat.
#Fullstack
#Dataviz
• Knowledge can be modeled as a tree in a lot of ways; e.g. KhanAcademy has a Knowledge Map for math. • Build tree visualizations like these for math, computer science, physics, or other subjects. Have nodes link to YouTube videos or other lessons. Build a generic solution taking JSON input. • [#🤷‍♂️] Automatically generate these visualizations from scraping YouTube playlists or textbooks. [#AI]
#Browser
• Add keyboard shortcuts and improved UI to add/remove subtitles, swap between dubbed and subbed, add definitions, etc. • Inspiration: https://languagelearningwithnetflix.com/
Games
Name
Tags
Text
#Small
#Scripting
#Hard
#AI
#Math
Codenames is a pretty interesting game from an algorithms perspective. I think the "optimal" move is a signal word that maximizes the number of friendly agents and minimizes the rival agents and assassins, but if your team is behind, you're more likely to take risks. • One Approach: Use word2vec or pre-trained word vectors and/or word associations APIs to create a forest of related terms for each board. Build heuristics to find common words and identify the best move, using different weights for friendly agents, bystanders, rival agents, and assassins. Build a "spymaster" algorithm and a "field operative" algorithm. • Build a [#Frontend] if desired or even a chatbot version! This project can probably be made into a research paper or article as well. • Links: Game on Amazon, Strategy Article, Words ListAlso: [#Easy] Project – Make the game!
#Small
#Scripting
#Frontend
#Math
See this video about Guess Who Strategy. Build an algorithm that solves Guess Who in a generic way. • Input: A list of "people" and their traits ([sex, eyes, glasses, hairstyle, haircolor, facialhair, race, ...]). Output: the optimal question to ask, and the people to remove based on the answer of the question. • [#Easy] Project – Make the game!
#Scripting
#Frontend
#Dataviz
#Small
#Easy
#Math
• Build a script or a web app with Chart.js or other charting library to simulate and analyze the McDonald's Monopoly Contest, Raising Cane's Peel the Love Contest, or similar promotions. • Let users specify the parameters (how many items they buy, what pieces they already have, etc.) and output simulated prizes, statistics, etc.
Music
Name
Tags
Text
#Small
#Extend
#Scripting
• Automate the creation of fun videos like this with MIDI files. • MVP: Support monophony (one note at a time) songs in one octave. User records each note themselves. Just use a string of notes like "E D# E D# E B C D A". • Expansion: Add MIDI Support. Allow multiple notes at a time and pitch shift to get different octaves. Allow multiple tracks / instruments overlaid at a time. Let the user record all notes in one go as opposed to recording each separately by splitting automatically. Support pitch bending like here.
#Large
#🤷‍♂️
#Scripting
• This is an unsolved problem: current tools are not great. Probably some super complicated [#Math] and signal processing. • Input: mp3 / wav / etc., Output: midi. • Expand by adding sheet music display too. • Checkout Mark Rober’s video for inspiration
#Scripting
#Hardware
#Dataviz
Videos: [1] [2] [3] • Using individually addressable LED strips like these, build a better music LED library for Raspberry Pis or Arduinos. • You may also need a microSD Card, Sound Converter, and Aux Cable (totaling to about $80 with the LEDs). • [#Extend] to [#Fullstack] by hosting a web or mobile app on the Pi to let users control their lights remotely. • [#Fork] this Python library. • Alternatively: Make it a hardware project, build a lamp or desk. • Alternatively: Check out Nanoleaf Panels (Amazon). They're a bit pricey, but have a much better SDK (API requires a free account) and a lot of music visualization capability built-in. There's a ton of potential projects for them (like this!).
#Frontend
#Easy
#Small
• Create a trainer for children and adults to get better at recognizing musical pitch, intervals, and chords. • Try associating pitch with color, intervals and keys with different popular songs (Automate key association with Spotify + Tunebat?) • MVP: Support pitch recognition for 1 octave and show accuracy for that session. • [#Extend] with [#Dataviz] statistics, daily goals, intervals, and chords. • Examples: MusicTheory, Tonedear, PitchImprover. Use MIDI.js if web app.
Productivity
Name
Tags
Text
#Browser
#Easy
#Small
Examples: Momentum, Humble New Tab, Motivation. • Build your own; they can be personal or work-productivity focused or something else (art or news?). Add cool wallpapers :). • [#Extend] to various APIs (Google Calendar, News, Wallpapers, To-do lists, GitHub, etc.)
• Most image and pdf annotation apps are pretty bad. Annotating resumes, images, lecture slides, etc., are a pain. Make a better app for it that works well with touch devices too. • Additionally: Build an Interactive Image Format on top of an existing image format (jpeg, png) that supports JSON-based annotations; research or utilize GeoJSON.
#Scripting
#Small
• Logging activities in both Calendar and fitness apps is a pain point. • After adding an event to Google Calendar, e.g. "Lifted at Gym", classify and log these to Google Fit (or MyFitnessPal, etc.). • Categorization doesn't seem too hard; an [#AI] Naive Bayes model should have 95%+ accuracy, but even just recognizing hardcoded values like "gym" or "running"  would work.
#Mobile
#Fullstack
#Large
#Extend
#AI
• Build an app like Mint, but for time "budgeting" and tracking. • Use Google Calendar's APIs, and classify events based on their titles and sub-calendars with NLP. • MVP: Just let users handpick their own rules and categories, e.g. lift -> Fitness, laundry -> Cleaning, and so on. Add manual labeling and some basic stats functionality. • Alternatively: [#Small] [#Easy] [#Fork] this Google Calendar app for calculating hours spent, expand it to add color-coding, categories, search, etc.
#Scripting
#Small
#Voice
Link presentations or just hot keys & media controls to voice recognition. Let presenter say "Next", "Back", or "Play" (videos), maybe with a wake-word and more features like "Time me" & "I'm done."
Services
Name
Tags
Text
#Fullstack
• Build a web or mobile app that helps promote and track the #Trashtag challenge. • Help local residents rent trash grabbers!
#Voice
• Build an Alexa (or Google or Siri) version of Daylio / Pixels that tracks user happiness, tells them their weekly / monthly average. • Let user record notes about their day (like gratitude journaling, or just straight voice memos). Maybe add a joke or words of encouragement too. • [#Extend] with a [#Fullstack] web app or [#Mobile] app. Add [#Dataviz]. • Flask-Ask (Python) is a great framework for Alexa apps!
#Mobile
#Hard
• Most voicemail apps are pretty bad. Build a better one. • Ideally, privacy-focused, so everything is stored locally but a backend server is hit for processing (text recognition / spam detection / fraud number database) and then the voicemail is deleted. • Possible features: Spam detection, caller pictures and ID, Speech-to-text and use NLP to figure out call-back phone number, auto-text reply suggestions.
#Fullstack
#Large
#Hard
Goal: Increase business-charity involvement by making it easy for businesses to create charity promotions (e.g. "For every purchase, we'll donate [$X] to charity"), incentivize them by lead generation. • Let users browse these promos on the platform. Gamify it by showing how much each company has donated to charity, and show users their personal impact. • Build an API and front-end widgets, documentation on how to implement on their platform (Shopify / Square / Salesforce integration?). • This is pretty involved with payment processing, building a public API, and business stuff.
#Fullstack
#Large
#Extend
#Dataviz
• Create a web app that's essentially a "This or That" for UI/UX/Design. • Let designers or developers put up 2 mocks of logos, icons, user flows, forms, etc. and let users pick the better one and explain why in short surveys and what they did or didn't like. Pay users for answering these (paid survey model, like Google Opinion Rewards). • Collect metadata and demographic information (years of experience with computers, device type, age, location, etc.) to provide more cohesive analytics.
#Fullstack
• A lot of paper is wasted at plays, musicals, and other performances, as hundreds of pamphlets are given out to spectators. • Build a web app for performances to rapidly create pamphlets (with Markdown?) and let spectators view them (in both computer and mobile form). • The biggest challenges here are (1) keeping people off their phones with screen glare and (2) proper dark theming for readability. Another goal is minimizing the time to find & open the pamphlet (QR codes?).
#Fullstack
#Large
#Hardware
• Build a service and web app that automates the creation (and sale) of Scratch Off Posters like this Movie one or this this Things To Do one. Expand to other kinds of "collection" posters. • Let the user handpick the items on the poster. You'll need a good designer / artist!
#Fullstack
#Scripting
#Dataviz
camelcamelcamel.com watches Amazon prices. Build a watcher that works for any website (Target, etc.) with automated scraping and price alerts.
#Hardware
• Build a small, waterproof recording button that lets you rapidly record voice or musical notes, in the shower, kitchen, etc., and send them to your phone or cloud storage. • Can use Bluetooth instead to avoid Wifi requirement. Have some amount of storage in the device so it can store a few recordings before needing to upload.
#Fullstack
• Build a service that helps people ideate and find side projects to build. Folks can contribute ideas and resources for different project ideas. • Kinda like this post, in that there's a lot of categorized projects, with a search engine. • Maybe add a list of open-source projects too, with user ratings for documentation, difficulty, and other metrics.
Other
Name
Tags
Text
#Mobile
#Fullstack
#Graphics
#Large
#Hard
#Math
• So I've seen a couple cycling simulation machines like Zwift or Veloton. • But these are super expensive and you should be able to make a Lite version for regular cycling machines with some smart sensors, a tablet or laptop, and a smart watch.
#Dataviz
#Scripting
• Given access to your email account via API, build a visualization of all your email subscriptions and newsletters and recent emails. • Classify and categorize these subscriptions into categories like "Products", "Business". • Add immediate links to unsubscribe from these emails.
#Browser
• Find popular but poorly rated extensions on Chrome or other browsers. Build a better version.
• Find open-source projects to contribute to via HackerNews or GitHub Explore.
#Dataviz
• Work with open-source datasets like FiveThirtyEight's or on Kaggle.

Technologies

Here are some of the technologies that I'd recommend for these projects.
  • [#Fullstack] Ghost (flexible content management system)
  • [#Voice] Flask-Ask (Python based Alexa skills framework)
Also get the GitHub Student Developer Pack that comes with hosting credits for DigitalOcean and AWS and a free .me domain, and more.
I hope these ideas help you out somehow! Let me know if you tackle anything 😊.