Inspiration
We were inspired by the difficulties in communication in group projects, especially design teams with an informal culture. There are verbal agreements and proposed features by members which gain broad support, but they often fizzle out before they can be set in stone. When the themes for Hack The Valley X were released, we realized that this idea could be expanded into classrooms and small startups with a flat management structure. For example, imagine if you became ill, and could not attend a very important lecture that day. If your friends and peers were in a shared note-taking space and could verify each other's information for correctness, then the compiled notes would be as good as or even better than what you could have taken down if you had attended.
What it does
Users can create a notebook, and are made the administrator of the space. Ideally. this person is in the highest position of the group, such as the teacher, startup founder, or design team lead. They can add other users to be contributors to the notebook and create pages in the notebook to organize discussion. In order to contribute, users must make their own copy of the page's latest version first, and then they can begin adding onto it. They can save they progress and if they believe that they are done, they can make a post of that latest state of the draft. Posts have a vote count, and if they exceed the merge threshold defined by the administrator, the post's content is appended onto the version chain. Posts can also be updated by refreshing it with the current state of the associated draft. A page's version history can be viewed, and differences between two versions are highlighted for clarity. On a more general level, this application serves as an interactive method to both benefit studies and introduce students to project management workflows.
How we built it
We first began our build with Django using it's DRF functionality to create the backend REST API, as it is built for rapid development and has a range of useful libraries. We connected it to a locally run PostgresQL database, as it is very flexible. Just to elaborate on the version history structure, the page holds the UUID of the latest version. Each version points to the version it replaced, creating a singly-linked list. As a result, comparing version differences becomes very convenient.
Challenges we ran into
There were some difficulties we ran into. One concern was the fact that it is easier to destroy than create. That is, one counterproductive contributor can create slowdown and even harm to file states. This can be resolved through the voting system, which self-polices bad behaviour and admin privileges allowing for the removal of the contributor's posts or even access to be removed.
Accomplishments that we're proud of
As this is the first hackathon that Arnav and I have been a part of, we as a group have lots to feel proud about. The most impressive aspect is that Arnav and Anshuman have a hardware-heavy background, and were not particularly familiar with full stack development coming here to HTV. We built an application in less than 2 days, one which would have taken weeks if it was a personal project. We constructed the framework for a note-taking DVCS that is highly scalable and easy to add more features.
What we learned
- React in web development
- Connecting frontend and backend by API endpoints
- PostgresQL setup on differing operating systems
- Architectural design and flow planning
What's next for Hivemind
- Blame feature to better connect contributors to their contributions
- Revert admin feature to return page to a previous version
- Solving issues with conflicting and overlapping merges
- Reverse vote system to automate bad post removal
- Comments on posts

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