Discussion – Password Strength Indicator #8

​1. Project Summary & Goals
​The core objective is to implement a real-time password strength indicator for Joplin's master password UI to prevent users from choosing weak credentials. While the initial idea focuses on a basic UI element, I aim to build a robust Security UX Framework that ensures high performance and cross-platform consistency.
​Primary Goals (The Basics):
​Integrate the zxcvbn algorithm to evaluate password entropy and complexity.
​Develop a dynamic React component that provides visual feedback (color-coded bars) as the user types.
​Provide actionable improvement suggestions based on the analysis (e.g., avoiding common patterns).
​Proposed Extensions (Increasing Project Scope):
​Performance Optimization (Web Workers): To prevent UI lag during complex entropy calculations, I will offload the zxcvbn analysis to a Web Worker, keeping the main thread responsive.
​Cross-Platform Core Logic: I will design the evaluation logic as a shared TypeScript service, making it easy to port this security feature to Joplin’s Mobile (React Native) and CLI versions in the future.
​Accessibility (WCAG Compliance): Implementing ARIA live regions so that password strength updates are announced to users using screen readers.
​Enforcement Layer: Adding an optional setting to allow users to enforce a "Minimum Strength" threshold before saving a password.
​2. Technical Skills
​I am a Computer Science Student with a strong foundation in software engineering. My expertise includes:
​Frontend & Web: HTML, CSS, Tailwind CSS, JavaScript, TypeScript, React, Next.js.
​State Management & Data: Redux, React Query, SQL, Databases.
​Core CS & Engineering: Data Structures & Algorithms (DSA), Object-Oriented Programming (OOP), Operating Systems (OS), Networking (CCNA).
​Architecture & Quality: Design Patterns (Strategy, Singleton), SOLID Principles, Testing with Jest.
​3. Why These Extensions?
​By implementing the "Web Worker" and "Shared Logic" approach, the project size increases from a simple UI task to a medium/large architectural improvement. This ensures that Joplin's security feedback is not just "a visual add-on" but a high-performance, accessible, and maintainable system across the entire ecosystem.
​4. Availability
​Weekly Commitment: I am fully dedicated to this project and will be available for 28 hours per Week To this project

What are your thoughts on this? @laurent

Hello, we've recently updated the template for GSoC draft proposals. Please update your post as described here:

Hi

​Thank you for the heads-up!

​Just to clarify, this post is actually a suggestion for features/enhancements for the project, not my formal GSoC proposal draft yet.

​I am still working on the official proposal and will make sure to use the new template and post it in the 'GSoC Proposal Drafts' category once it's ready.

@laurent

What are your thoughts on these points? Do you think I should proceed with the proposal based on these suggestions, or is there anything I should refine first?

I apologize if I’m asking too many questions, but I want to make sure I’m on the right track

Because of the lack of formatting it's not readable, so I didn't read it to be honest. But one thing you should focus on is whether there is enough for a 90 hours project. This has been discussed in other threads about this project

Hello,

Thank you for your draft proposal. Unfortunately we had to remove the idea from the list as described here: https://github.com/joplin/gsoc/pull/16

Please consider creating a new draft proposal based on a different idea or on your own idea.