project-proposal-2025

MeshNotes: A Distributed Web Note-Taking System

Abstract

I am proposing MeshNotes, a robust, web-based note-taking platform 📝 that gives users the ability to create, edit, and share their notes even under challenging network conditions (along with basic AI features like AI autocomplete and spell-check in the text editor). Being a regular user of apps like Notability and GoodNotes on my iPad, I often find it difficult to add both text and handwritten notes and access them on both my Windows and Mac computers or mobile phones without app installation. Generally, the reason for this is that the app is not available on all platforms or otherwise has a very hefty subscription cost 💰💸.

By using a local-first, distributed architecture and Progressive Web App (PWA) technology, this website will work in no network conditions and still make sure that data is securely handled. For the quality attributes, the platform emphasizes continuous availability, reliability, and seamless interoperability within any web environment. The system’s core functionalities, a well-defined Minimum Viable Product (MVP), critical quality attributes, an evaluation strategy, and a brief technology stack are mentioned below.

Author

Name: Yash Mittal
Student Number: 48238690

Functionality

MeshNotes is designed to deliver a comprehensive suite of features that address the needs of users who require dependable and real-time access to their notes:

Scope (MVP)

The Minimum Viable Product (MVP) will include:

Quality Attributes

MeshNotes is built with the following key quality attributes:

Evaluation

MeshNotes will be evaluated based on its key quality attributes: availability, reliability, and interoperability. Each attribute will be rigorously tested to ensure the system meets its intended requirements and functions seamlessly across various conditions.

Availability Testing

Objective: Ensure that MeshNotes remains operational regardless of network status.

Approach: I plan to simulate network outages to test the system’s ability to continue functioning offline. The system should automatically synchronize once the connection is restored. This can be done without any tool but after conducting a research I found some good tool on internet that do a more robust testing.

Methods:

Tools: Mock Service Worker (An API mocking library for browser and Node.js that intercepts network requests to simulate various scenarios) for simulating network disruptions and testing offline behavior.

Reliability Assessment

Objective: Ensuring that MeshNotes maintains data integrity and performs correctly even under concurrent usage or failure conditions.

Approach: Simulating scenarios where multiple users are editing the same note to test conflict resolution mechanisms. Assess the effectiveness of data consistency strategies in resolving conflicts. At this stage I plan to use last-wrtie wins test mechanism.

Methods:

Tools: Integration testing to simulate concurrent edits and use database logging to track changes and identify any inconsistencies.

Interoperability Testing

Objective: Ensure that MeshNotes operates uniformly across different browsers, devices, and web environments.

Approach: Test the system’s ability to function across different operating systems (Windows, macOS, Android, iOS) and browsers (Chrome, Firefox, Safari, etc.).

Methods:

Technology Stack

Conclusion

This proposal for MeshNotes outlines a resilient, distributed web note-taking system that addresses the limitations of current solutions by allowing web-based, simple note-taking (unlike complex web apps like Notion) that work without the need for installing applications. I have tried to detail every aspect—from core functionalities and a well-defined MVP to quality attributes, evaluation strategies, and a robust technology stack while still keeping the editor rich in basic AI features which are an MVP of the top solutions today. A strong focus on Load Balancing, Caching, and Conflict Resolution will be the key to the success of MeshNotes.

References