Skip to content

sarankirthic/mtbs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Booking Management API

A RESTful backend service built using Java, designed to manage user authentication, booking processes, email notifications, password resets, and payment transactions. This project provides essential endpoints for handling common operations in booking-based applications such as hotel reservations, event management, or appointment scheduling.

📂 Features

  • Authentication – Handles user registration, login, and token-based authentication.
  • Booking Management – Allows users to create, view, and manage bookings.
  • Email Notifications – Sends confirmation and alert emails to users for various actions.
  • Password Reset – Provides endpoints to securely reset user passwords.
  • Payment Transactions – Processes payment-related operations and keeps track of transaction status.

🚀 Getting Started

Prerequisites

  • Java JDK 11 or above
  • Maven or Gradle for dependency management
  • Database (MySQL, PostgreSQL, etc.) configured for storing user and transaction data
  • SMTP server credentials for email functionality
  • Payment gateway API keys for processing payments

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/booking-management-api.git
    cd booking-management-api
  2. Configure environment variables or application.properties with the database, SMTP, and payment gateway credentials.

  3. Build the project

    ./mvnw package spring-boot:repackage -DskipTests
  4. Run the application

    java -jar targer/*.jar > app.log

API Endpoints

AuthController

POST /auth/register – Register a new user

POST /auth/login – Authenticate user credentials

BookingController

POST /bookings – Create a new booking

GET /bookings/{id} – Retrieve booking details

DELETE /bookings/{id} – Cancel a booking

EmailController

POST /email/send – Send notification emails

PasswordResetController

POST /password-reset/request – Request password reset

POST /password-reset/confirm – Confirm and set a new password

paymentTransactionController

POST /payments – Process a payment transaction

GET /payments/{id} – Retrieve transaction details

⚙ Configuration

  1. Add configurations for:
  2. Database connection (e.g., URL, username, password)
  3. SMTP server (host, port, credentials)
  4. Payment gateway (API keys, callback URLs)

🔒 Security

  1. Passwords should be hashed using bcrypt or similar algorithms.
  2. JWT or session-based authentication is recommended.
  3. Validate inputs to prevent common attacks like SQL injection.

📈 Future Enhancements

  1. Implement user roles and permissions
  2. Add API rate limiting
  3. Improve logging and monitoring
  4. Support multi-language email templates

📫 Contribution

Contributions, issues, and feature requests are welcome! Please fork the repository and create a pull request or open an issue.

📄 License

This project is open-source and available under the MIT License.

About

Movie Ticket Booking System in Java

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published