Releases: ryanbcommits/shopping-list-app
Release list
v1.4.0 Quantity Controls
Quantity Controls
Each shopping list item now has an adjustable quantity.
- Set a quantity when adding an item
- Adjust it anytime with + and - buttons, synced in real time
- Minimum of 1 β items can't drop to zero
- Redesigned controls grouped into a single, compact unit
Full technical details in the CHANGELOG.
v1.3.0 β Search & Filtering
What's New
Search Feature
- Real-time search filters the list as you type
- Case-insensitive matching against item names
- Search and category filter work simultaneously
- Clear button (X) appears when search field has text
- "No results" message when search returns zero matches
Full Changelog
See CHANGELOG.md for complete details.
v1.2.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[Unreleased]
In Progress
- Category filter bar styling
- Attempted to use
categoryButton.id = valuefor CSS targeting, but IDs
cannot contain spaces β broke on "Frozen Food" and "Fish / Seafood" - Solution: switch to
categoryButton.classList.add("category-btn")so all
filter buttons share one class regardless of their label text - Active button highlight still needed (requires adding/removing a second
class like "active" via JavaScript on click)
- Attempted to use
Known Issues
- Adding an item while a category filter is active appends it to the
visible list regardless of whether it matches the current filter - User is not logged out after alotted time after hitting ok on the alert button.
- Session timeout alert does not reliably log the user out β clicking OK
on the alert triggers the document click listener, resetting the
inactivity timer. Needs a custom modal to fix properly.
[1.2.0] - 2026-03-03
Added
- Category system for shopping list items
- Category dropdown in add-item form (Dairy, Produce, Grocery, Meat, Frozen Food, Fish / Seafood)
- Category field saved to Firestore with each item
- Category badge displayed on each list item with color coding
- Category filter buttons generated dynamically from CATEGORIES array
currentFilterstate variable to track active category selection- Category filter buttons dynamically filter the shopping list on click
Changed
- Updated
saveItemToDatabasefunction to accept category parameter - Updated
addToListfunction to display category data - Updated
loadUserDatato pass category from Firestore toaddToList - Refactored
loadUserData()into a three-stage collect β filter β display pipeline - Stage 3 now renders from filtered array, not raw Firestore data
[1.1.0] - 2025-12-11
Added
- Complete inline edit functionality for shopping list items
- Edit/Save/Cancel workflow with proper state management
- Dynamic UI updates based on
data-edit-modeattribute - Timestamp updates when items are edited
- Cancel button that appears only during edit mode
- Google Sign-In button following official branding guidelines
Changed
- Status badge updated from "beta" to "stable"
- Edit button now toggles between "Edit" and "Save" modes
- Delete button hidden during edit mode to prevent accidental deletions
- Improved event listener architecture (defined at component level)
Fixed
- Cancel button event listener scope issues
- UI state inconsistencies when canceling without changes
- Double-click requirement bug in cancel functionality
- Edit mode state properly resets on cancel action
[1.0.0] - 2025-08-27
Added
- Initial production release
- User authentication (Email/Password)
- Google OAuth sign-in
- Shopping list CRUD operations (Create, Read, Delete)
- Real-time data synchronization with Firestore
- Soft delete functionality
- Rate limiting (1 second cooldown)
- Session timeout (15 minutes)
- XSS protection via textContent
- Password complexity validation
- HTTPS/SSL certificate
- Favicon
Security
- Environment variables for Firebase config
- Input sanitization
- Session management
- Password policy enforcement
[0.9.0-beta] - 2025-08-24
Added
- First public beta deployment
- Core shopping list functionality
- Firebase integration
- Basic authentication flow
Known Issues
- Mobile compatibility issues on iOS Chrome (resolved in 1.0.0)
[0.1.0] - 2025-06-09
Added
- Initial project setup
- Basic HTML structure
- Firebase connection testing
- DOMContentLoaded implementation
Version History Summary
- 1.2.0 - Category system with filter buttons and collect β filter β display pipeline
- 1.1.0 - Full CRUD operations with inline editing
- 1.0.0 - First stable release with production deployment
- 0.9.0-beta - Public beta with core features
- 0.1.0 - Initial development
Edit Functionality Complete! βοΈ
π What's New
This release marks a significant milestone with the completion of full CRUD operations. Users can now edit their shopping list items inline with a smooth, intuitive workflow.
β¨ New Features
Complete Edit Functionality
- Inline Editing: Click "Edit" to modify any item without leaving the list
- Save/Cancel Options: Full control over your edits with dedicated save and cancel actions
- Smart UI Updates: Delete button automatically hides during edit mode to prevent accidents
- Timestamp Tracking: Edited items update their timestamps in the database
Improved User Experience
- State Management: Robust state tracking using
data-edit-modeattribute - Visual Feedback: Clear indication when in edit mode
- Error Prevention: Single-click cancel functionality (fixed double-click bug)
-Google Branding: Sign-in button updated to meet Google's official guidelines
π Bug Fixes
- Fixed cancel button event listener scope issues
- Resolved UI state inconsistencies when canceling edits
- Corrected the double-click requirement for cancel button
- Ensured proper state reset when exiting edit mode
π Technical Improvements
- Event listeners now properly defined at component creation level
- Implemented
loadUserData()refresh strategy for UI consistency - Added timestamp updates for edited items
- Improved code organization and commenting
π Deployment
The latest version is live at: https://app.ryanbcommits.com
π Development Notes
This release represents approximately 6 weeks of incremental development (Nov 15 - Dec 11, 2024), with a focus on:
- Learning proper state management patterns
- Understanding event listener scope
- Implementing user-friendly edit workflows
- Ensuring database consistency
π What's Next
- Special character validation
- Enhanced mobile UI
- Categories/tags for items
- Shopping list sharing capabilities
π¦ Installation
bash
git clone https://github.com/ryanbcommits/shopping-list-app.git
cd shopping-list-app
npm install
npx vite
π Thanks
Special thanks to everyone who tested the beta version and provided feedback!
Full Changelog: v1.0.0...v1.1.0
v1.0.0 - MVP Shopping List
Shopping List App v1.0.0 - MVP Release
β¨ Features
- User authentication (Email/Password and Google Sign-In)
- Add/delete shopping list items
- Real-time data sync with Firebase
- Auto-logout after 15 minutes of inactivity
- Rate limiting and security features
π§ Technical Stack
- Frontend: Vanilla JavaScript with Vite
- Database: Firebase Firestore
- Authentication: Firebase Auth
π Known Issues
- UI needs styling improvements
- No edit functionality yet
- Mobile responsiveness needs work
π Next Release Plans
- Edit items functionality
- Categories for items
- Improved UI/UX
π¦ Installation
- Clone the repository
- Run
npm install - Create
.envfile with Firebase config - Run
npx vitefor development
Note: You'll need to provide your own Firebase configuration.
See .env.example for required environment variables.
Note: This is an MVP release for testing and feedback.
Authentication & CRUD Operations
π What's New
- β Complete user authentication (login/registration)
- β User-specific data storage and retrieval
- β Dynamic list management with soft delete
- β Real-time database synchronization
- β Personalized user experience
π οΈ Technical Improvements
- Modular JavaScript architecture (firebase-config, login.js, index.js)
- Proper authentication state management
- Soft delete pattern for data preservation
- Template literals for dynamic content
- Error handling and user feedback
π Known Issues
- UI needs styling improvements
- Form validation limited to password field
- No edit functionality yet
π What's Next
- Shopping list functionality
- Enhanced UI/UX
- Additional form validation