Authentication:
Registration: Users registered with unique username, email, and a secure password. Security question and answer were required.
Login: Users logged in using email and password.
Change Password: Users could reset password by verifying email, security question, and answer.
Logout: Session cleared to log out users.
"What to Do?" Section:
Users navigated to Dining, Nightlife, or Sightseeing categories via carousel or drop-down menu, then directed to relevant venues.
Venues:
Displayed venues with essential info (name, description, address, etc.).
Users added reviews and ratings.
Implemented AJAX-based filtration by location, category, and price.
Add Venue:
Logged-in users added new venues via a validated form. Used AJAX to dynamically populate location and category options.
Code Structure:
Followed 3-tier architecture (Models, Services, Controllers).
Blueprints organized app components.
Static handled assets (CSS, JS, images), and Templates managed HTML.
Used Flask Migrate and SQLAlchemy for database migrations and ORM.