Skip to content

feat: initial MVP implementation of BookMyVenue#93

Open
Adeelp1 wants to merge 58 commits into
WeCode-Community-Dev:mainfrom
Adeelp1:feat/mvp-foundation
Open

feat: initial MVP implementation of BookMyVenue#93
Adeelp1 wants to merge 58 commits into
WeCode-Community-Dev:mainfrom
Adeelp1:feat/mvp-foundation

Conversation

@Adeelp1

@Adeelp1 Adeelp1 commented Jul 2, 2026

Copy link
Copy Markdown

Description

This pull request introduces the initial MVP implementation of BookMyVenue, delivering the core functionality required for a complete venue booking platform.

What's Included

  • JWT-based authentication with role-based authorization (User, Venue Owner, and Admin)
  • User registration and login
  • Venue owner registration and venue management
  • Venue creation with image uploads and amenities
  • Admin approval and rejection workflow for venue listings
  • Browse and search approved venues
  • Venue details with images, amenities, and available slots
  • Booking workflow with payment integration
  • User booking management and booking cancellation
  • Database schema, API, and project documentation

This PR represents the first complete, end-to-end MVP of BookMyVenue, covering the primary workflows for users, venue owners, and administrators.

Phase Category

  • Phase 1: MVP Submission (Base Foundation)
  • Phase 2/3: Feature Implementation or Modularization
  • Phase 4: Scalability Optimization
  • General (Documentation, Bugfix, Chore, etc.)

Tech Stack (For Phase 1 MVP Submissions)

(Example: Frontend: React, Backend: Node.js, Database: MongoDB)

  • Frontend: HTML, CSS, JavaScript
  • Backend: Go, Gin, JWT Authentication, sqlc
  • Database: PostgreSQL
  • Other: Redis, Docker, Docker Compose

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature / Module (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update

Checklist:

  • I have read the Contribution Guidelines.
  • My code follows the community spirit and standards of the WeCode community.
  • I have performed a self-review of my own code.
  • I have commented my code, particularly in hard-to-understand areas.
  • My changes generate no new warnings or errors.

AI Disclosure

  • I did NOT use AI tools to generate this code.
  • I used AI tools (e.g., Copilot, ChatGPT, Claude) to help write this code, and I have fully reviewed, tested, and understand the output.

Screenshots / Screen Recording (if applicable)

Adeelp1 added 30 commits June 3, 2026 12:28
- user login and registration
- JWT access and refresh tokens
- bcrypt password hashing
- PostgreSQL integration via Docker Compose
- sqlc code generation
- migration management
- Makefile automation
- project gitignore configuration
- Add admin, owner, and user homepage HTML pages
- Create internal/web package for frontend serving logic
- Move HTML serving logic out of auth handler
- Redirect users to role-specific homepages after login
- Improve separation of concerns between auth and web layers
- add location column to venues table
- add venue search and update queries
- regenerate sqlc code
…support

- implement venue creation feature
- save uploaded venue images to uploads folder
- add required dependencies
- add add_venue.html form for venue submission
- add pkg/utils/uuid.go for string to pgtype.UUID conversion
- serve frontend for add venue API
- update venue owner home page with links to add venue, view approved venues, and view unapproved venues
Adeelp1 added 28 commits June 16, 2026 11:43
…eation

- implement single and bulk slot creation for venue owners
- store availability slots in the availability database
- add 'Set Venue' link on approved venues page for slot management
- add utility function to convert string to pgtype.Timestamp
* update RoleGuard to accept multiple roles
* add test cases for role authorization scenarios
…payment

* reserve slots in Redis and PostgreSQL during booking
* add mock payment page using HTML
* persist booking details in the bookings table
* store access and refresh tokens in HTTP cookies
* update JWT middleware to read tokens from cookies
* rewrite JWT middleware tests for cookie-based authentication
* remove Authorization header usage from frontend
…onfirmed status

* add query to retrieve slot ID by booking ID
* update GetBookingsByUserID to filter confirmed bookings
* generate sqlc code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant