projects.md (8205B)
1 +++ 2 title = "Project Ideas" 3 +++ 4 5 My list of project ideas. If you are reading this and think one of these projects would genuinely be useful, or you have a similar problem, feel free to let me know! 6 7 ## Coding 8 9 I have a *lot* of coding project ideas. No guarantees that any given project here will actually happen 10 11 ### Simple eBook Reader 12 13 Simple terminal program that just reads EPUB files and has nice output. Would need an html parser and possibly use ueberzug for images 14 15 - Possible Language: Go 16 17 ### Simple Viewer 18 19 X11 program for viewing basic text and images. Basicalyl somewhere between a web-browser, pdf viewer and terminal pager. Would support images, and could read from standard input like a pager. Advantage over a terminal would be easier image support and non-monospace font options. Advantage over pdf viewer would be speed and flexibility. 20 21 - Possible Language: Go, Zig, C 22 23 ### Suckless Spell-Check 24 25 Both of the major spell check libraries (hunspell and aspell) are rather large projects. I'm sure they are well written, and they serve a purpose, but a more minimalist alternative should be possible. 26 This project would just have basic functionality; reading in a file, outputting incorrectly spelt words along with suggestions. Perhaps also a TUI interface allowing the user to choose between options, or add the existing word to the dictionary. 27 28 - Possible Language: Zig, Go 29 30 ### Ultra-Minimal dmenu Alternative 31 32 dmenu is suckless software and is faily lightweight (~1300 SLOC) compared to say Rofi (~25000 SLOC). I'd like to have go making an even more lightweight version, with only the most basic features. 33 34 - Possible Language: Zig (good C support to use XLib headers) 35 36 ### Basic Photo-Site Creator 37 38 A simple program that takes a bunch of photos, descriptions and other metadata, and outputs a HTML grid of said images. No JS, customisation left to CSS. 39 40 - Possible Language: Go 41 42 ### Pro Cycling Stats CLI 43 44 CLI/TUI tool for displaying live race data from procyclingstats, built in such a way to minimise traffic to their servers 45 46 - Possible Language: Go, Zig 47 48 ### UK Weather Terminal Interface 49 50 A TUI interface that pulls data from the Met Office and BBC Weather, to allow comparing the forecasts 51 52 - Possible Language: Go, Python 53 54 ### Weather Station Symbol Generator 55 56 Been fascinated with [these symbols][ws] ever since Nat 5 Geography, would be good to programatically generate them. Could be used as a weather widget on your computer, or even for educational purposes. 57 58 [ws]: https://www.bbc.co.uk/bitesize/guides/zbp82hv/revision/4 "BBC Bitesie - Weather Circles" 59 60 ### GoTube 61 62 I previosuly had a project named GoTube, a TUI YouTube client with thumbnail support via ueberzug, and account integration via the innertube browser API. My plan is to split this project up into a backend, and a frontend video viewer, as the frontend video viewer could be used for more than just YouTube, and the backend tools could be useful by themselves. Maintaining this was a bit of a chore as YouTube are always changing their website JSON format. I'm egenerally anti-AI for programming but this could be a genuine usecase, more experementation is needed. 63 64 ### Markdown to Groff Converter 65 66 A few of these exist on the internet but I can't find any that handle images. Admittedly images with Groff seems like a pain so that might be why... Born out of a desire to build documents in plaintext without installing all of LaTeX 67 68 ### DekuDeals API 69 70 Another project I previously made but never finished. I do want to bring this back at some point, I lost my motivation to work on it becuase I stopped religiously buying Switch games, but it's still a neat idea. 71 72 ### Minimalist Game Library Manager 73 74 I use Playnite on my desktop gaming PC to organise all my games, which works well but a more lightweight alternative, that works on Linux, would be nice. There is Lutris, but I don't need any of the feaetures it has. Doesn't even need to be a game *launcher*, just a way to visually organise the games I want to play. 75 76 - Possible Language: Go, Zig, C# 77 78 ### Games 79 80 Grouping all of my video game ideas into one section 81 82 #### Idle Fish Game 83 84 I used to play [Abyssrium][aby] on my phone but it's a bit too much of a "mobile game". It would be neat to make a game like this without ads or microtransactions etc. Not sure if it would be for mobile or desktop. 85 86 [aby]: https://www.abyssrium.com/ "Abyssrium Homepage" 87 88 #### Top-Down Planet Crafter Clone 89 90 Game in the style of [Planet Crafter][pc] but top-down or isometric. Possibly good as a first game project 91 92 [pc]: https://store.steampowered.com/app/1284190/The_Planet_Crafter/ "Planet Crafter Steam" 93 94 #### Incremental/Multiplayer/Browser Game 95 96 A combination between old school MUDs, modern incremental browser games, and resource management games 97 98 ### Mini Projects/Other 99 100 Projects that can be done in an afternoon: 101 102 * An `ls` clone in Zig - mainly as a learning exercise 103 * Simple cli file management tools (batch renaming, numbering etc) 104 * A fun terminal program that simulates a junction with traffic lights 105 * [asciiquarium][asq] rewrite in C or Zig 106 * cli tool for word pronounciation 107 * Simple RSS feed generator. Takes markdown files and outputs RSS feed 108 109 [asq]: https://github.com/cmatsuoka/asciiquarium "asciiquarium - GitHub" 110 111 Vague ideas: 112 113 * Something with the [Nuklear][nuk] minimal C UI library 114 115 [nuk]: https://github.com/Immediate-Mode-UI/Nuklear "Nuklear GitHub" 116 117 ## Linux 118 119 ### Low Powered Computers 120 121 The [Pi 3B+ desktop setup][pi] is the first in a series I hope to make of usable Linux setups on underpowered/old hardware. Other ideas I have are: 122 * Old mini PC 123 * Portable Pi cyberdeck 124 * Old Thinkpad 125 * Old laptop converted to desktop or all in one (similar to [this DIY Perks video][diy]) 126 127 [pi]: /linux/pi3-b-setup-pt1 "Part 1 of my Pi 3B+ setup series" 128 [diy]: https://www.youtube.com/watch?v=8jeLCQ62vFk "DIY Perks all in one" 129 130 ### Minimalist Software 131 132 Minimalist software comprises a lot of my workflow already, but there are areas I would like to improve on. Inspired somewhat by [this guide][alt] 133 134 [alt]: https://github.com/mayfrost/guides/blob/master/ALTERNATIVES.md "Alternatives to bloatware" 135 136 ## Hardware 137 138 ### Thinkpad Keyboard -> USB Keyboard 139 140 I really want [one of these][tpk] but I can't find any in a UK layout, and they are all quite expensive. It should be possible to make one using a Thinkpad keyboard extracted from an old laptop, and a Pi Pico or Arduino in HID mode. 141 142 [tpk]: https://support.lenovo.com/gb/en/solutions/pd026745-thinkpad-compact-usb-keyboard-with-trackpoint-overview-and-service-parts "Thinkpad USB keyboard" 143 144 ### Mod an XBox 360 145 146 The XBox 360 was my mid-childhood console. Don't currently own one but I would like to, and modding it doesn't seem *too* hard. 147 148 ### GaMeR CoNsOlE 149 150 Taking a Ryzen mini PC or laptop, extracing the motherboard and mounting in an old game console shell (OG XBox, PS2 etc). Batocera or similar would be used to emulate any console up to the 6th gen 151 152 ### DIY Bike Computer 153 154 Using either an old Android phone, or a round display [like this][rd]. Recording ride data for Strava, and displaying basic maps using OpenStreetMap data. 155 156 [rd]: https://thepihut.com/products/seeed-studio-round-display-for-xiao-1-28-round-touch-screen "Example round display" 157 158 ### Arcade Stick 159 160 DIY arcade stick/controller (with buttons), made using Pi Pico. Would be usable on Switch, PC etc 161 162 ## Other 163 164 ### Website 165 166 * Gopher or Gemini plaintext site 167 * Webrings stuff 168 * Style my [git website][mygit] 169 - Also get `git clone` working properly 170 * Photo sub-website 171 - Need to build the photo site generator first 172 * Wiki sub-website 173 - Just a wiki for random computer knowledge I have gathered 174 * Single info page/linktree page 175 176 [mygit]: https://git.regexghost.com "git.regexghost.com" 177 178 ## Defunct Ideas 179 180 * Performant Obsidian clone - a program like Obsidian but built in a native UI library like XLib, prioritising performance 181 - Defunct as I use terminal text editors now and don't see myself going back to GUI ones 182 * DIY arcade cabinet - a proper full/nearly-full size arcade cabinet 183 - I don't have the room for this at the moment unfortunately 184 * Digital pinball machine 185 - Same as above, not enough room