https://github.com/cdylan320/ticket_booking_app
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: cdylan320
- Language: JavaScript
- Default Branch: main
- Size: 935 KB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
readme.md
Ticket Booking App(DTIX)
Overview
The Ticket Booking App is a full-stack application designed to simplify the process of booking tickets for various events. Users can browse events, select seats, make payments seamlessly, and access advanced features like NFT ticketing, auction rooms, and blockchain integration.
Features
Core Features
- User Authentication: Sign up, log in, and manage profiles.
- Event Listings: Browse and search for events.
- Seat Selection: Choose preferred seats with an interactive grid system.
- Payment Integration: Multiple secure payment gateways including Stripe, MoonPay, and HIVE blockchain.
- Booking History: View past bookings and transactions.
- Ticket Management: Download tickets as PDF and view details.
- Resell: List tickets for resale with secure transfer mechanism.
- Auction System: Create and join real-time auction rooms for exclusive tickets.
Advanced Features
- Ticket NFTs: Convert tickets into NFTs stored on blockchain for authenticity and transferability.
- Auction System: Bid on exclusive tickets in real-time auction rooms with dynamic timers.
- Resell Marketplace: Resell purchased tickets with secure transfer of ownership.
- HIVE Blockchain Integration: Use HIVE blockchain for ticket transactions with Resource Credits.
- MoonPay Integration: Buy and sell crypto for ticket purchases.
- AI-powered Event Assistant: Get information about events using natural language queries.
Technical Implementation
Frontend Architecture
- React + Vite: Component-based UI with fast development environment
- Framer Motion: All animations and transitions
- Tailwind CSS: Utility-first styling for the entire UI
- Context API: State management for user authentication
- Socket.io Client: Real-time bidding in auction rooms
- PDF Generation: Client-side ticket PDF generation with jsPDF
Backend Architecture
- Express.js: RESTful API architecture
- MongoDB/Mongoose: Database with schemas for users, events, tickets, auctions
- Socket.io: Real-time communication for auction system
- JWT Authentication: Secure user sessions
- Blockchain Integration:
- HIVE Keychain integration for crypto payments
- Ethereum smart contracts for NFT tickets
- IPFS: Storage for NFT metadata
- AI Service: Integration with AI models for event information
Technologies Used
- Frontend: HTML, CSS, JavaScript, React, Vite, Tailwind CSS, Framer Motion
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JWT
- Payment Gateways: Stripe, MoonPay, HIVE blockchain
- Blockchain: Ethereum (for NFTs), HIVE (for payments)
- Real-time: Socket.io
- AI: Google AI models for event information
Installation
Prerequisites
- Node.js
- npm or yarn
- MongoDB
- Metamask or other Ethereum wallet (for NFT features)
- HIVE Keychain browser extension (for HIVE payments)
Setup
- Clone the repository:
bash
git clone https://github.com/yourusername/Ticket_Booking_app.git
Navigate to the project directory:
cd Ticketbookingapp
Install dependencies for both frontend and backend:
bash
cd Frontend_ticketing
npm install
cd ../Backend_ticketing
npm install
Set up environment variables:
- Create a
.envfile in theBackend_ticketingdirectory. - Add the following environment variables:
bash
MONGO_URI=your_mongodb_uri
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=your_stripe_secret_key
TICKET_NFT_CONTRACT_ADDRESS=your_nft_contract_address
PRIVATE_KEY=your_ethereum_private_key
SESSION_SECRET=your_session_secret
- Create a
.envfile in theFrontend_ticketingdirectory:
bash
VITE_BACKEND_URL=http://localhost:8000
VITE_MOONPAY_TEST_PUBLIC_KEY=your_moonpay_test_key
Usage
- Start the backend server:
bash
cd Backend_ticketing
npm run dev
- Start the frontend server:
bash
cd Frontend_ticketing
npm run dev
- Open the browser and navigate to
http://localhost:5173.
Feature Details
User Authentication
- Standard email/password authentication with JWT
- HIVE blockchain authentication option for decentralized identity
Event Discovery & Booking
- Browse events with dynamic filtering and search
- Interactive seat selection grid
- Multiple payment options (Credit Card, HIVE, MoonPay)
Ticket Management
- View purchased tickets with details
- Download tickets as PDF
- Convert tickets to NFTs
NFT Ticketing
- Mint tickets as ERC-721 NFTs
- Transfer tickets securely on blockchain
- View NFT ticket metadata and ownership history
Auction System
- Create auction rooms with custom parameters
- Real-time bidding with dynamic timers
- Bidding war detection
- Leaderboards and bid history
Resell Marketplace
- List owned tickets for resale
- NFT-based proof of authenticity
- Secure transfer mechanism
HIVE Integration
- Authentication with HIVE Keychain
- Resource Credits-based simulated payments
- Blockchain record of ticket transactions
Contributing
Contributions are welcome! Please feel free to submit a pull request.
License
This project is open source and available under the MIT License.
Acknowledgements
Owner
- Name: Dylan Combs
- Login: cdylan320
- Kind: user
- Repositories: 1
- Profile: https://github.com/cdylan320
GitHub Events
Total
Last Year
Dependencies
- 542 dependencies
- @google/generative-ai ^0.21.0
- @solana/spl-token ^0.4.9
- @solana/web3.js ^1.98.0
- axios ^1.8.2
- bcrypt ^5.1.1
- compression ^1.7.5
- cors ^2.8.5
- dotenv ^16.4.7
- ethers ^6.13.5
- express ^4.21.1
- express-rate-limit ^7.5.0
- express-session ^1.18.1
- form-data ^4.0.2
- helmet ^8.0.0
- ipfs-http-client ^60.0.1
- joi ^17.13.3
- jsonwebtoken ^9.0.2
- mongodb ^6.10.0
- mongoose ^8.9.5
- nodemon ^3.1.9
- prettier ^3.3.3
- socket.io ^4.8.1
- stripe ^17.3.1
- web3.storage ^4.5.5
- 1065 dependencies
- @eslint/js ^9.11.1 development
- @types/node ^22.10.1 development
- @types/react ^18.3.10 development
- @types/react-dom ^18.3.0 development
- @vitejs/plugin-react ^4.3.2 development
- autoprefixer ^10.4.20 development
- eslint ^9.11.1 development
- eslint-plugin-react ^7.37.0 development
- eslint-plugin-react-hooks ^5.1.0-rc.0 development
- eslint-plugin-react-refresh ^0.4.12 development
- globals ^15.9.0 development
- postcss ^8.4.49 development
- tailwindcss ^3.4.15 development
- vite ^5.4.8 development
- @emotion/react ^11.13.5
- @emotion/styled ^11.13.5
- @moonpay/moonpay-js ^0.6.6
- @moonpay/moonpay-react ^1.8.10
- @mui/material ^6.1.9
- @stripe/react-stripe-js ^2.9.0
- @stripe/stripe-js ^4.10.0
- axios ^1.7.7
- bcrypt ^5.1.1
- canvas-confetti ^1.9.3
- client file:
- ethers ^6.13.5
- framer-motion ^12.0.1
- html-to-image ^1.11.11
- jspdf ^2.5.2
- keychain-sdk ^0.8.5
- react ^18.3.1
- react-confetti ^6.2.2
- react-dom ^18.3.1
- react-icons ^5.4.0
- react-markdown ^9.0.3
- react-qr-code ^2.0.15
- react-router-dom ^6.27.0
- react-spring ^9.7.5
- react-tooltip ^5.28.0
- socket.io-client ^4.8.1
- use-sound ^4.0.3
- 532 dependencies
- @nomicfoundation/hardhat-toolbox ^5.0.0
- @nomicfoundation/hardhat-verify ^2.0.13
- @openzeppelin/contracts ^5.2.0
- dotenv ^16.4.7
- ethers ^6.13.5