Project Info

TigerPop

Devpost

Inspiration

TigerPop began from a common, frustrating campus problem: students constantly need textbooks, furniture, and event tickets, while others are looking to sell or give them away. However, the current solutions—scattered group chats and clunky social media groups—lack safe discovery, simple communication, and streamlined workflows. We set out to build more than just a classifieds page. We wanted a polished marketplace tailored specifically for campus life: fast, privacy-aware, and easy to operate for both students and administrators. Our goal was to create a modern product that lowers the friction of real-world transactions while keeping the community's trust intact.

What it does

TigerPop is a full-stack campus marketplace that enables verified communities to list, discover, and close sales with minimal friction. The platform manages the entire listing lifecycle—from creation and image management to status transitions (Available, Pending, Sold). Key features include: Dynamic Listing Lifecycle: Comprehensive CRUD operations for listings, allowing users to set categories, conditions, and prices. Smart Image Management: Multi-image uploads backed by Cloudinary with CDN-optimized delivery and server-side validation. Buyer Intent Capture: A "Request to Buy" system that records interest in the database and automatically moves listings to a "Pending" state to prevent double-selling. Dual Dashboards: Specialized views for sellers to manage active listings and for buyers to track purchased items and active requests. Admin Suite: Tools for moderation, category management, and CSV report exports for campus auditing.

How we built it

We adopted an API-first architecture, utilizing a TypeScript-based React frontend and a Flask (Python) backend. The Architecture Frontend: React + TypeScript with Tailwind CSS for a responsive, modern UI. Backend: Flask organized with modular Blueprints for Authentication, Listings, and User Profiles. Database: PostgreSQL managed via SQLAlchemy ORM. We used Alembic to track and manage schema migrations. Infrastructure: The project is designed for Vercel, utilizing serverless-friendly patterns. For instance, we dynamically adjust our database pooling based on the environment: Infrastructure: The project is designed for Vercel, utilizing serverless-friendly patterns. For instance, we dynamically adjust our database pooling based on the environment: Media: Cloudinary handles image storage and transformations, ensuring our server remains lightweight. Media: Cloudinary handles image storage and transformations, ensuring our server remains lightweight.

Challenges we ran into

Serverless DB Management: Ensuring short-lived serverless invocations didn't exhaust database connections was a hurdle. We solved this by implementing NullPool settings to ensure connections are closed immediately after a request. Upload Permutations: We spent significant time balancing the security of server-side image processing against the speed and convenience of client-signed Cloudinary uploads. UX vs. Moderation: Designing a flow that allows for "frictionless" posting while building in the hooks for future spam prevention and rate-limiting required careful state management.

Accomplishments we're proud of

Complete Lifecycle Flow: Successfully implementing a robust "Request-to-Buy" logic that reliably transitions database states. Clean Separation of Concerns: Building a distinct modular backend that is ready to be consumed by a future mobile app without requiring code changes. Production Readiness: Even at the MVP stage, we implemented Alembic migrations and environment-aware configurations, ensuring the app is ready for a real-world campus rollout.

What we learned

Deployment is a Feature: We learned that production-like considerations—such as database pooling, CDN usage, and CORS-safe configurations—are just as vital as the core business logic. Contract First Development: Investing early in the backend-frontend "contract" (API design) allowed our team to work in parallel without constant blockers. The Power of Serverless: Building with Vercel taught us how to design Python applications that are truly stateless and scalable.

What's next

Notifications: Integrating SendGrid or Resend to move beyond database "intent" to real-time email/SMS alerts for sellers. Identity Verification: Implementing campus NetID/CAS integration to ensure that only verified students can participate in the marketplace. Rate-Limiting: Adding middleware to protect critical endpoints (uploads and requests) from automated spam. AI Enrichment: Utilizing computer vision to provide condition estimates and price suggestions based on uploaded listing photos. Built With: Backend: Python, Flask, SQLAlchemy, Alembic, PostgreSQL, Cloudinary Frontend: React, TypeScript, Tailwind CSS, React-Router Deployment: Vercel, Python Serverless Functions

Analysis

Compare with all teams

View

Metric

No commits on this project resolved to a GitHub account.

Technology

Found in codeClaimed only
  • CSSIn code
  • FlaskIn code
  • HTMLIn code
  • JavaScriptIn code
  • PythonIn code
  • ReactIn code
  • SQLIn code
  • Tailwind CSSIn code
  • TypeScriptIn code
  • PostgreSQLClaimed
  • VercelClaimed

9 of 11 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

No AI coding agent signals were found in this repository.

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

181 KB

Source files

70

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars