Tabitha - Bookmark Manager

Project

Type Project
Year 2025

Tabitha- The learning project

Tabitha is a personal project I built as I was learning Spring Boot and wanted to deepen my understanding of Spring Security. At the time, I was also enrolled in an art history course that required managing and securing links, and while I already used a friend’s app, LinkVite, I wanted to build something on my own to gain more practical experience. Thus, I created Tabitha, a simple link management app. The app allows users to bookmark and store links securely while automatically generating thumbnails using Picasso, making it easier to visually identify the source of each link. The app is built with the same tech stack as Awa: Spring boot and MongoDB for the backend and Flutter for the frontend. MongoDB’s flexibility and scalability were ideal for storing user data and bookmarks, while Spring Boot simplified the process of creating a secure, fast, and responsive backend.



With Flutter, I was able to create a clean, cross-platform mobile experience for users. The app uses JWT (JSON Web Tokens) for secure authentication, allowing users to access their links on any device they log into. The app also allows users to categorize links (e.g., Scholarship Links, Immigration Links) for easy organization. It is a basic project, but it helped me build a solid understanding of full-stack development and explore how to integrate authentication and secure data management. The tech stack—MongoDB, Spring Boot, and Flutter which provided a consistent development experience and reinforced the skills I was developing for more complex projects.

Features and Functionality

For Tabitha, the core feature is a link bookmarking system that allows users to store, categorize, and manage links securely. The app uses Picasso to automatically generate thumbnails for each link, making it easier to visually identify sources. Links are stored securely on the server, ensuring they are accessible across devices, and categorized for easy access (e.g., Scholarship Links, Immigration Links). The app includes JWT authentication for secure login and uses a simple User and Bookmark entity structure to manage data. This straightforward setup ensures smooth user experience while learning how to implement full-stack functionality and authentication.

Tech Stack and Architecture

For the backend, I used Spring Boot for building the RESTful API, along with MongoDB as the NoSQL database to handle dynamic data storage and scalability. Spring Security was implemented to manage authentication and authorization. I worked with JWT tokens for securing user sessions, including both access and refresh tokens, and integrated BCrypt for secure password encoding. In the backend, I also learned about DTOs (Data Transfer Objects), UserDetails, UserPrincipal, and JwtAuthFilter to handle the user authentication process, as well as AuthenticationService to process login and token validation.

The frontend was built with Flutter, providing a responsive, cross-platform user interface. The app follows a 3-tier architecture: the presentation layer (Flutter UI), the business logic layer (Spring Boot API), and the data layer (MongoDB). This separation of concerns ensures better modularity, scalability, and ease of maintenance. The security configuration ensures that sensitive user data, including passwords and personal information, is protected and handled securely throughout the app.

This technical stack not only allowed me to build a fully functional bookmarking app but also helped me dive deep into security practices, authentication flow, and overall backend architecture, setting the foundation for more complex projects

Emergency Automated Response Platform
Second Platform
Emergency Automated Response Platform
Second Platform
Emergency Automated Response Platform
<--