I’ve honestly been slacking in programming recently – actually, a lot. I’ve been stepping in the same small patch of grass for the last few months, and I feel like I’m losing touch with the current programming trends. Furthermore, I want to build up a small student portfolio, because my GitHub is mostly empty, with a small project here and there, all of them – forgotten about and written with some fairly shady coding practices.
For this reason, I’m embarking on a small mission for the next 13* weeks: writing 5 projects. Namely: a hotel reservation manager, a whiteboard sticky notes app, a TTS (Text-to-speech) app, a student planner, and a chat app.
* I know the title says 10 weeks, but for my sanity I’ve given myself 3 weeks of downtime.
Timeline
I’ll use the weeks of the year to track my time, starting with a Week 0 (W32/2024) for planning and preparation.
W0: Collect info about updates to C#, JS frameworks, etc. and ease back into programming.
W1-2: Hotel reservations
W3-4: Whiteboard sticky notes
W5: Break (school starts)
W6-7: TTS app
W8-9: Student planner
W10: Break (prepare for last project)
W11-12: Desktop chat app
Hotel reservation manager
Technology: web – ASP.NET
The first app I’m making is a Hotel reservation manager. It’s supposed to include features for clients and staff, having one integrated system for reservations, room maintenance and cleaning, managing prices, etc. This is inspired by an assignment I got in school by a former teacher of mine that I never actually finished. It’s a fairly straightforward project that can be accomplished by most CS students, and for that reason it’s the first one on the list.
I intend to write the app in ASP.NET Core, because quite frankly, I just like C#. It’s one of my primary and most used programming languages, and I want to acquire more hands-on experience with one of its most used libraries.
Whiteboard sticky notes
Technology: web – JS
I’m not sure if this exists, but I really like the concept: instead of having ‘folders’ in a notes app, you have a whiteboard, on which you put sticky notes. You can move them around and draw on the whiteboard as well. This website, like the hotel reservations project, will feature a basic login system. Given the limited time periods, I don’t want to go all-in on making an advanced auth system, so I don’t aim further than register, login, edit account for the auth functionality.
For this website, I want to touch a bit of React for the frontend and Node.js for the backend with Express. I’ve used both for small, unfinished projects before, but I want to deploy something with them.
Demo – I intend on keeping the app online as a demo version, where you can create an account. Accounts will get deleted 24 hours after their creation for the sake of not having people use this seriously (and keeping my costs down!)
Text-to-speech app
Technology: mobile (Android)
A close family member of mine has been having trouble with their voice the past few years, which inspired me to make a really simple TTS app, where you write a sentence or two and have the app dictate it. No menus, no fancy options (other than maybe a language/voice selection), just text to speech with big buttons for ease of use.
This should be an easy application to write, and I’m not sure if I’ll even need the whole two weeks for it, but I think it’s a good idea to have some variety in the difficulty of the projects. To make it more fun, I plan on trying out Kotlin with Android Studio.
Student planner
Technology: web (Next.js)
This has been on my mind for a long time – a student planner app, where you can insert your schedule, add classwork and upcoming tests/exams, note down homework, set goals for studying, etc. Just like the whiteboard app, this will too have a basic auth system and a demo deployment that deletes accounts a few hours after their creation.
I haven’t really been following JavaScript trends a lot (aside from watching Prime and Theo recently), so I want to test out Next.js. From my understanding, it should be pretty similar to the React + Express setup I have for the whiteboard app, so I hope to use that as a foundation knowledge base and expand on it with this app.
Desktop chat app
Technology: desktop (.NET with Avalonia), backend TBD
No particular reason for this project’s existence on this list, but it’s the last because it’ll require some more prep work. I want to build a simple real time chat application between users, and maybe even group chats. No specific end-to-end encryption or anything of the sort, just some basic message exchanges.
Avalonia UI (for .NET) has been on my radar for a very long time, and I want to put it to the test with something like this. I’m still not sure what I’ll use for the backend, so I’ll take the week-long break before the final project to consider that. I hope that, having completed 4 projects of varying difficulty, I’ll have some more insight on what would be more appropriate to use.
Conclusion
Week 1 begins on the 19th (so in exactly 7 days). I’ll post more on the blogs as I go, targeting at least one or two posts per project. See you soon!