hackquest logo

EventShot

Never Miss an Event Photo again, Take photos and upload directories on Starknet ๐ŸฆŠ

๋น„๋””์˜ค

์„ค๋ช…

๐Ÿ“ธ EventShot: Capturing Moments, Decentralized

EventShot is a decentralized platform designed to revolutionize event photography by seamlessly integrating QR code technology, real-time photo capturing, IPFS for decentralized storage, and StarkNet smart contracts for immutable record-keeping.


๐Ÿš€ Core Features

1. Event Creation & QR Code Generation

  • Event Hosts can effortlessly create events on the platform.

  • Upon creation, a unique QR code is generated for each event.

  • This QR code can be printed or shared digitally, serving as the gateway for attendees to participate.

2. Attendee Engagement via QR Scanning

  • Attendees scan the event's QR code using their devices.

  • Scanning directs them to the event's dedicated page on the web app, eliminating the need for manual searches or registrations.

3. Real-Time Photo Capture & Upload

  • Within the event page, attendees can capture photos in real-time.

  • Captured images are uploaded to IPFS, ensuring decentralized and tamper-proof storage.

  • Metadata, including uploader information and timestamps, are recorded on StarkNet smart contracts, guaranteeing authenticity and traceability.

4. Immutable Record-Keeping with StarkNet

  • Every photo upload is logged on StarkNet, providing a transparent and immutable history of contributions.

  • This ensures that event memories are preserved securely and verifiably.


๐Ÿ› ๏ธ Technical Architecture

- Frontend: A responsive web application facilitating event creation, QR code generation, and photo capturing.

- Backend: Integration with IPFS for decentralized storage of images.

- Blockchain Layer: StarkNet smart contracts manage event data, image metadata, and user interactions.

- QR Code Integration: Each event's unique QR code links directly to its corresponding page on the web app.

---

๐ŸŽฏ Use Cases

  • Conferences & Seminars: Attendees can capture and share moments, fostering community engagement.

  • Weddings & Celebrations: Guests contribute to a collective photo album, preserving memories from multiple perspectives.

  • Festivals & Public Gatherings: Real-time photo sharing enhances the event experience and creates a decentralized media repository.


๐ŸŒŸ Why EventShot?

  • User-Friendly: Simplifies the process of event participation and photo sharing.

  • Decentralized Storage: Ensures that memories are preserved without reliance on centralized servers.

  • Immutable Records: StarkNet integration guarantees that all contributions are securely recorded.

  • Enhanced Engagement: QR code access and real-time uploads foster active participation.


๐Ÿ”š Important Links

live url- https://event-shots.vercel.app/

Frontend Github -https://github.com/Shuriken-labs/event-shots
Starknet SmartContract - https://github.com/Shuriken-labs/event-shot-cairo-contract
Backend Github - https://github.com/Shuriken-labs/event-shot-backend-starknet

ํ•ด์ปคํ†ค ์ง„ํ–‰ ์ƒํ™ฉ

1. ByteArray Wars ๐Ÿ”ฅ The Problem: StarkNetโ€™s ByteArray encoding was not playing nice. The Fight: Tried sending raw strings โ†’ Reverted. Manual hex splitting โ†’ Calldata mismatches. Finally reverse-engineered the ABIโ€™s expected struct (data, pending_word, pending_word_len) and forced it into submission. 2. The "ENTRYPOINT_NOT_FOUND" Trap ๐Ÿ•ณ๏ธ The Illusion: Thought the function didnโ€™t exist. Reality: Our calldata formatting was slightly off. Breakthrough: Logged exact calldata sent vs. expected. Realized ByteArray needed chunked 31-byte hex strings + padding. 3. Nested Storage Hell ๐ŸŒ€ Data Structure: event_id โ†’ Vec<IImage> (where IImage = uploader + Vec<ByteArray>). Challenge: Flattening nested arrays in Cairo without iter(). Solution: Double for loops with manual indexing (at(i)). Edge Case: Empty arrays? Handled. Missing events? Handled. 4. Frontend โ†” Contract Sync ๐Ÿ’ฅ Pain Point: JS byteArrayFromString โ‰  Cairoโ€™s struct. Fix: Made frontend reconstruct the exact ByteArray struct the contract demanded. Validated with raw calldata dumps. 5. The "It Works" Moment ๐ŸŽ‰ After: Brutal ABI alignment. Countless panic!("Why?!") removals. Final Win: Images flow from frontend โ†’ backend โ†’ contract โ†’ flattened array without explosions.

๊ธฐ์ˆ  ์Šคํƒ

React
Cairo
Starknet
Node

์ž๊ธˆ ๋ชจ๊ธˆ ์ƒํƒœ

n/a

ํŒ€ ๋ฆฌ๋”EElijah Kolawole
์˜คํ”ˆ ์†Œ์Šค
๋ถ€๋ฌธ
OtherSocialFi