https://github.com/floydrise/loopin
'Experiences' platform, where a user can browse events, sign up for events, buy tickets and more. Hosted on Render, please, give it some time to load.
https://github.com/floydrise/loopin
better-auth bun drizzle hono react stripe tanstack tanstack-form tanstack-query tanstack-router typescript zod
Last synced: 3 months ago
JSON representation
'Experiences' platform, where a user can browse events, sign up for events, buy tickets and more. Hosted on Render, please, give it some time to load.
- Host: GitHub
- URL: https://github.com/floydrise/loopin
- Owner: floydrise
- Created: 2025-05-12T15:02:59.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-06-04T15:23:41.000Z (7 months ago)
- Last Synced: 2025-06-20T20:51:02.060Z (7 months ago)
- Topics: better-auth, bun, drizzle, hono, react, stripe, tanstack, tanstack-form, tanstack-query, tanstack-router, typescript, zod
- Language: TypeScript
- Homepage: https://loopin-aiii.onrender.com/
- Size: 10 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ποΈ LoopIn
LoopIn is an **experiences platform** where users can explore and sign up for eventsβeither **free or paid (via Stripe)**. Designed with a modern full-stack monorepo architecture, LoopIn allows users to:
- β¨ Browse and discover upcoming events
- π Sign up for free events
- π³ Purchase tickets for paid events (Stripe)
- π§ Receive confirmation emails after sign-up/purchase
- ποΈ Add events to Google Calendar (if signed in with Google)
- ποΈ Manage (delete) tickets from their profile
Additionally, **staff members** can:
- π οΈ Create, update, or delete events
> π§ͺ Built with cutting-edge tools - Bun, Hono, and TanStack to deliver a fast, modern experience.
---
## π οΈ Tech Stack
### Backend
- **[TypeScript](https://www.typescriptlang.org/)**
- **[Bun](https://bun.sh/)**
- **[Hono](https://hono.dev/)** (Edge-native web framework)
- **PostgreSQL** (via [Neon](https://neon.tech/))
- **[Drizzle ORM](https://orm.drizzle.team/)**
- **[Zod](https://zod.dev/)** for validation
- **[Resend](https://resend.com/)** + React Email for sending emails
- **[Stripe](https://stripe.com/)** for payments
- **[Better-Auth](https://www.better-auth.com/)** for authentication
### Frontend
- **React + Vite + TypeScript**
- **[TanStack Router/Query/Form](https://tanstack.com/)**
- **[Tailwind CSS](https://tailwindcss.com/) + [Shadcn](https://ui.shadcn.com/)**
- **[Stripe.js](https://www.npmjs.com/package/@stripe/stripe-js)**
- **[Motion](https://motion.dev/docs/react-animation)** for animations
- **[Luxon](https://moment.github.io/luxon/#/?id=luxon) / [date-fns](https://date-fns.org/)** for date handling
- **[usehooks-ts](https://usehooks-ts.com/introduction)** for utilities
- **Zod** (shared across client and server)
---
## π Getting Started
### π§± Prerequisites
- Install [Bun](https://bun.sh/)
- Populate the `.env` file using `.env.example`
### π§ Installation
```bash
# 1. Clone the repo
git clone https://github.com/yourusername/loopin.git
cd loopin
# 2. Install backend dependencies
bun install
# 3. Go to frontend folder
cd view
# 4. Install frontend dependencies
bun run install
```
### πRunning Locally
You'll need two terminal windows open:
```bash
# Terminal 1 (backend)
cd loopin
bun run dev
# This will run on localhost:3000 by default
# Terminal 2: (Frontend)
cd loopin/view
bun run dev
# This will run on localhost:5173 by default
```
---
## π Features
- π Social login via Google/GitHub
- β
Ticket confirmation via email
- πΌ Staff mode for event management
- πΈ Secure payments with Stripe
- ποΈ Fully containerized with Docker
- βοΈ Deployed to Render
---
## π₯ Demo
[πΊ Watch the demo video](https://youtu.be/ExyiK87rd9M?si=5ud2n8K33SrppiAr)
Try it live (may take a few seconds to boot β³):
π [https://loopin-aiii.onrender.com/](https://loopin-aiii.onrender.com/)
---
## πββοΈ Author
Built with β€οΈ by **Stefan Petrov**