Inspiration
During hackathons and group projects we kept running into the same problem. When one person got stuck on important code the whole team slowed down. Everyone wanted to help but it was not efficient. People either worked on their own copies of the code or crowded around one screen which made it hard to collaborate.
We wanted a simpler way to work together. So we decided to build a tool where everyone can view the same code in real time and also edit annotate and communicate in one place. The goal is to make teamwork faster easier and more effective.
What it does
This project creates shared workspaces where teams can collaborate in one place. Each workspace supports multiple users and contains the files the team is working on.
Within a workspace users can communicate with their team and upload code to view together in real time. When working on a file everyone can edit annotate and chat at the same time. This allows teams to stay in sync and solve problems faster without breaking their workflow.
How we built it
We built the application using Qt as our main framework with QWidgets powering the interface. This allowed us to create a clean and responsive desktop experience while also using the project to grow our skills in C++.
For real time collaboration we used QWebSockets to handle communication between users and real time editing within the file viewer. Our backend was deployed on Railway and built with JavaScript to manage connections and keep everything in sync.
To deliver a smooth coding experience we integrated QScintilla as the file editor. This gave us features like syntax highlighting and a clean interface similar to a lightweight IDE.
Challenges we ran into
One of the biggest challenges was building a proper file viewer. We first tried using native Qt tools to display and edit file content but it was difficult to match the experience of a real code editor. Features like syntax highlighting and smooth editing were hard to implement in a clean way.
After running into these limits we took a step back and explored better options. Through research we found QScintilla which is a Qt compatible library designed for code editing. Integrating it allowed us to overcome these issues and deliver a much cleaner and more polished experience.
Accomplishments that we are proud of
One of our biggest accomplishments was building a system that supports real time collaboration. Users can connect with each other, view changes to code instantly, and communicate all within the same space. Bringing all of this together into one smooth experience was a major milestone for us.
We are also proud of the overall design of the application. The interface feels clean and intuitive with features like draggable windows and a seamless layout. This helped us create an experience that feels natural and easy to use.
What we learned
Through this project we strengthened our skills in C++ which is a language we want to continue working with in the future. We also gained experience using Qt which we plan to build on for future projects focused on low level software and user interfaces.
On the backend side we learned a great deal about networking and real time systems. Amy led the setup of our server while we worked on handling communication between users and the server. This gave us a deeper understanding of how real time applications send data and stay in sync.
What is next for Noteflow
After sharing our project with industry professionals we received strong feedback encouraging us to continue building. They saw real potential for this idea in a real development environment which pushed us to take it further.
Our next step is to build a proper database to support the platform. This will allow us to store workspaces messages and files so users can return to their projects and continue working at any time. This is an important step toward making the product more complete and scalable.
Built With
- c
- c++
- cmake
- javascript
- mongodb
- qscintilla
- qt
- railways



Log in or sign up for Devpost to join the conversation.