Friend, Family and Travel Diary (FFTD) is a website that enables users to document and share significant moments, such as family histories, travel experiences, and friendships. This platform allows users to maintain a personal diary and preserve their memories digitally in a secure and user-friendly interface. It is built using Agile methodologies, with development spanning over five sprints, ensuring continuous improvements and feature integration.
-
User Registration and Authentication:
- Secure user registration using encrypted passwords.
- Login and session management for user-specific access.
-
Friend and Family History:
- Ability to store and view past and current friendships.
- Create a family tree by linking family members with ancestry records.
-
Travel and Event Sharing:
- Users can upload photos, videos, and comments about their travels and personal events.
- Create, edit, and delete event details, enabling users to document memorable life moments.
-
Bucket List:
- Users can create a personal bucket list, track progress, and mark items as completed, in progress, or pending.
-
Dynamic Content Updates:
- Allows users to dynamically post and update content on their diary without requiring technical knowledge or coding.
-
Access Rights Management:
- Admins or coordinators can manage users' access rights, ensuring only authorized users can add or edit content while others may only view it.
-
Testing and Bug Fixing:
- Comprehensive testing of all functionalities was done during the final sprint to ensure smooth operation and a bug-free experience.
- Frontend: Thymeleaf (Template Engine)
- Backend: Spring Boot (Java)
- Database: MongoDB (NoSQL)
- Security: Spring Security for authentication and access management
- Version Control: Git
- Agile Methodology: Scrum, with 5 sprints spanning 2 weeks each
- Tools: JIRA (for project tracking), Postman (API testing)
The project follows a standard MVC (Model-View-Controller) pattern:
- Model: Defines the data structure and database schema using MongoDB.
- View: Implemented using Thymeleaf to create dynamic web pages.
- Controller: Handles requests, processes the data, and returns appropriate views to the user.
- Sprint 1: Database setup, user registration, login functionality, and forgot password feature.
- Sprint 2: Implementing access rights management, family ancestry links, and friend history functionality.
- Sprint 3: Travel and event sharing features, including uploading photos and videos.
- Sprint 4: Bucket list feature, dynamic content updates, and system-wide testing.
- Sprint 5: Bug fixing, system testing, and documentation preparation.