Programming Project Ideas I may never get around to building, so you can have them
New project ideas hit me in the face every day and pull my attention towards things I may never finish. As I've said before, my workflow is akin to a stove running out of backburners with pots boiling over. I've got lots of projects, some in progress, some dead, and many that I'll never have time to build myself. Some are just extra features to add to existing services, some are simple utilities, and others are completely independent projects. I consider some of them to be quite good, and if I ever do get around to building one, it'll go from this onto the projects page. If you do take one of these ideas and run with it, it would be super epic if you'd give me a shoutout for the idea.
A VR Language Learning Game
"Job Simulator" was a VR sensation with all its silly interpretations of bringing monotonous tasks into VR in a fun and engaging way. On the other side of the coin, Duolingo is a fantastic venture into the gamification of language acquisition. A VR game that marries the two in a world crafted to teach the player a new language could be both a big hit and a very positive usage of the medium. Perhaps every object in the game would be labeled with its translation. Perhaps a narrator would direct the player in the new language, and maybe the device's microphone would be used to teach speaking. The player would have to complete various tasks given by the narrator or possibly interact with NPCs in the new language. Perhaps certain languages could feature unique environments for the cultures, like a French cafe or a Japanese shrine. The implementation would be rather simple. You'd just need a load of 3D props, translations, and voice lines to get started. It wouldn't need very demanding hardware to run, and perhaps a version could be built for Google Cardboard for the greatest accessibility to people looking to learn a new language or practice their skills.
A reaction video maker
Back in 2015, during the YouTube Jinx and CJsoCool drama, many prominent creators lambasted some YouTubers for their low-effort reaction video content. These creators would simply record themselves watching a video with very little commentary or unique personal touches. These videos were not very transformative, and take very little editing to produce. Although I dislike this content, the cynic in me questioned how easy it could be to create one of these videos, so I came up with the idea to make a program to pump them out with as little effort as possible. The user would simply be able to provide a YouTube link and press play, and at the end, they could just press the upload button and it'd be on YouTube. This would support two types of videos: Ones with a camera in the corner, optionally with a custom frame or backdrop, and ones where the user watches, then pauses and their camera goes fullscreen for them to talk. Given that the program would have to combine video information from the original video, the webcam, and microphone, this would probably need to interface heavily with something like FFMPEG. For this reason, I would do it in C++ and use a windowing library like Qt or GTK. This could possibly be replaced with just something like OBS, but this program would automate the process as much as possible.
An app that compiles vulnerabilities based on technologies used on a website.
Wappalyzer is one of my favorite browser extensions. It will detect many of the tools used on a website based on what it can scrape from its code and server requests, and display each technology and its version. This is great if you're ever curious to know what your favorite websites are built with. The service also provides a paid API that can generate a report of the technologies found on a particular website. This could be combined with something like VulnDB, which provides a comprehensive list of exploits for various programs and technologies. The User could enter our website, provide a link to a webapp they'd like to test, and then get a list of vulnerabilities found on it. This app could also run on an interval to check for new vulns, and generate a detailed report on how to fix the issues as well as a description of what could happen if left unpatched.
Fake News Flagger
Nowadays, it can be very tricky and downright exhausting to get the facts on a particular story. The contemporary news cycle moves at a rapid pace and many unsubstantiated things can be published as fact or statistical misinterpretations and logical fallacies can slip through the cracks. Although it's important to get a balanced news diet, perhaps this problem could be addressed with crowdsourcing. I prepose a browser extension called Fake News Flagger. When a user comes across a story with a factual flaw, they can highlight, annotate, and mark it as such. Later users visiting the page will be alerted with reports that other users have flagged the content. The extension could provide a myriad of flagging options for things like opinions, logical fallacies, or just general misinformation. They would also need to provide a contradictory source. It would also be neat if it could exist somehow on mobile, but I can't think of an elegant way of achieving this as mobile browsers don't have extensions. Of course, the potential logistical and ethical implications of this system are dubious. This kind of tool is rife for tampering, and there are certainly issues that would need to be addressed.
Meat and Potatoes
Similar to the last one, this is a tool for altering the presentation of news found online, but this one is a bit simpler. I've noticed with great frustration that modern "news" about tech and gaming is usually padded with way too much fluff that talks about previously known information or speculation, which leaves the actual important news between several paragraphs of junk. A browser extension called Meat and Potatoes could allow users to select and hide the junk and subsequent users would have it hidden by default, with the option to expand it if they want.
The third tenet of the CIA triad is accessibility, which is the ability to access information systems effectively. Many people spend lots of time fiddling about with their passwords, which are required to be complicated. There could be an app for practicing typing a password (mobile and desktop). It would keep track of your speed and show exactly where / what letters you get tripped up so it can become more muscle memory. It would only store the password encrypted locally.
Versatile Fingerprint Scanner
Biometrics are one of the most useful features on phones, and the ability to log into things with just a tap is awesome. However, desktop fingerprint scanner support is sparse. Perhaps, someone could build an app that allows the user to interface with a USB fingerprint scanner and register many fingerprints which map to different passwords. When the app detects the specific finger, it'll paste the fingerprint scanner like normal keyboard input so it'd work with any program or website. It would be awesome if this were cross-platform.
An app for crafting and sharing logical arguments
It can be hard to communicate complicated ideas about ethical, political, or really any kinds of issues. I propose a cork-board style webapp where users can craft arguments in a node graph/flowchart style. There would be little cards the user can write on and draw lines between., maybe in the format claim -> points -> evidence. There would be a section to define complicated terminology, and cards could embed images, PDFs, or links to academic sources. Once created, the argument could be shared online for other users to respond to, or even imported into a new more complex argument to expand on it. Users could also export it as a PNG, PDF, or some other useful format.
A better art auction website.
Art websites such as Deviant Art and Furaffinity are full of artists looking to do great work. One of the most common formats is an art auction where users can bid for different character slots in a piece. The current system involves users commenting on posts and replying to each other's comments to bid, but this whole system could be revamped to a site better optimized. Users could view all existing auctions, filter auctions based on what they're looking for, upload their characters so they don't have to send them to every artist and validate that they are suitable to be in the piece, and earn a streak of valid transactions to combat scamming in the art community.
Game development is one of the most complicated mediums to create for. Many hands doing different jobs must coordinate to make a single cohesive piece. Games can require many types of visual art, sound effects, music, writing, and programming. However, it can be very tricky to gather a group of people to work together on something new. The solution I propose is a classic internet forum style website for game creators to network, post their ideas, and build new teams. Someone would post a little bit about the project they'd like to build, the style, the vision, etc, as well as what they bring to the table, and what else they need. Other developers and artists could browse the posts and try to link up and collaborate on new projects. The goal would be more indie devs and artists being able to join forces with the people they're looking for to create something awesome.
A game controller interface for desktop UI
PC gaming is awesome, and with a little bit of elbow grease, you can play pretty much any game system through the power of emulation or tons of native games. However, not everyone wants to grease their elbows, and one of the greatest inconveniences of PC gaming is UI. It can feel quite combersome for some users to have to continuously switch between keyboard and mouse and controller. Programs like Steam Big Picture and Retroarch go a long way to fix this problem, and even Steam allow users to create custom launch shortcuts. However, it's still quite frequent that I find myself jumping between UI and game and thus keyboard and controller. A very common example would be Dolphin Emulator. To solve this problem, I would suggest some kind of program to navigate the windows (or other OS :)) UI with a game controller. I don't actually know how to achieve this, however, I have a couple ideas of where to start. Applications built with accessibility in mind have a navigation scheme called the tab order. Pressing the tab key in any UI should take the user through all the UI controls, and pressing enter will usually activate buttons, arrow keys can navigate dropdowns, etc. Perhaps, you could make a program that would map these tab-navigating keys to controller inputs and automatically switch between controller modes if a game is in focus or not. My other idea, is using more "native" tools to work with the programs themselves. Most windows GUI apps (especially emulators) are built with a select few different windowing libraries. Among them are the standard windows UI toolkits (WPF, forms, Universal Apps, etc), Qt, and GTK. I've never done this myself, but I've seen programs that are built to work with and alter programs built with these libraries, so perhaps it would be possible to write something that would make them more easily navigable with controllers, or even a plugin for these libraries developers could use to make their UIs more navigable with controllers.
An app to display the names of objects in a certain language
Perhaps you've found yourself in a foreign country, and you need to describe some things that you don't know the name of. Maybe you're purchasing something at a bakery, and you don't know what a muffin is called in Korean (I can't think of a better example right now). Or perhaps you're just trying to practice a new language. This app combines a Computer Vision API with a translation API. The user would hold up their phone's camera, and the app would identify objects and display their names in the selected language. Taping the object would say the name aloud.