I'm working on a final project for university where I need to develop an application. I've chosen to create a simplified version of Discord that includes features like profile creation, editing, and instant messaging. Despite taking a variety of coding classes over the last nine years, I'm feeling totally unprepared for this! I have a roadmap of my application ideas and a list of the programming tools I want to use. However, I'm unsure about how to bring everything together into a cohesive program. Can anyone share some tips, tricks, or resources that might help me kick things off?
3 Answers
Have you thought about looking into Information Architecture and creating a Data Flow Diagram? It could help you visualize how everything connects and flows within your application.
Start with the basics and take it one feature at a time. First, design your database schema—think about the core elements such as users, messages, and channels. After that, set up a backend API using Node and Express to get things moving. Then connect a simple React UI to enable account creation and messaging. Once you have those core functionalities working, integrate Socket.io for real-time chat, add authentication with JSON Web Tokens and bcrypt, and wrap it up with testing. Remember, don’t try to build everything simultaneously—launch a small working version first, then expand from there!
Does your project need to be a desktop app? If possible, I'd recommend going for a browser-based application instead. This can help you avoid the complexities that come with using Electron, which can be a bit heavy for a final project. Trust me, building with Express and Socket.io can be much simpler and smoother.

Honestly, the project guidelines are pretty vague, and I'm especially worried since the first release is due next Sunday. Would focusing on just a browser app really simplify things for me? Do any of my other planned technologies change if I go that route?