Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛍️ Thriftversity — Campus Thrifting MVP App

A React Native (Expo Go) mobile app for hyper-local second-hand fashion trading among university students. Built as an MVP for the Thriftversity e-business project at Universitas Multimedia Nusantara.


📱 Features

Feature Status
Campus email verification (.ac.id)
Browse & search listings
Product detail with seller info
Like / save items
In-app chat between buyer & seller ✅ Auto-reply simulation
Sell / post new listing
Checkout flow with dummy QR
COD meeting point selection
Seller profile with ratings & badges
Transaction history
Mock GraphQL in-memory database

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Expo Go app installed on your phone (iOS / Android)

Steps

# 1. Install dependencies
npm install

# 2. Start the dev server
npx expo start

# 3. Scan the QR code in your terminal with Expo Go

That's it! The app will load directly on your device.


🔐 Demo Login

Use any email ending in .ac.id to log in:

Email:    yourname@student.umn.ac.id
Password: anything (demo mode)

⚠️ Non .ac.id emails are rejected — this is the core identity verification feature.


🏗️ Project Structure

thriftversity/
├── App.js                          # Root app entry
├── app.json                        # Expo configuration
├── src/
│   ├── context/
│   │   └── AuthContext.js          # Authentication state
│   ├── data/
│   │   └── mockDatabase.js         # In-memory dummy data
│   ├── graphql/
│   │   └── mockClient.js           # GraphQL-style query/mutation API
│   ├── navigation/
│   │   └── AppNavigator.js         # Tab + Stack navigation
│   ├── screens/
│   │   ├── AuthScreen.js           # Login / Register
│   │   ├── HomeScreen.js           # Browse + Search + Featured
│   │   ├── ProductDetailScreen.js  # Full product view
│   │   ├── SellScreen.js           # Post a new listing
│   │   ├── CheckoutScreen.js       # 3-step checkout + dummy QR
│   │   ├── ChatScreen.js           # Real-time-like messaging
│   │   ├── InboxScreen.js          # Conversation list
│   │   ├── LikedScreen.js          # Saved/liked items
│   │   ├── ProfileScreen.js        # User profile & listings
│   │   └── SellerProfileScreen.js  # View any seller's profile
│   └── utils/
│       └── theme.js                # Colors, spacing, helpers

🗄️ Data Architecture

The app uses a mock GraphQL client (src/graphql/mockClient.js) that simulates backend queries and mutations using an in-memory JavaScript store — no real server or internet connection required.

Available Queries

gql.getProducts(filters)       // Filter by category, search, price
gql.getFeaturedProducts()      // Top picks for homepage
gql.getProductById(id)         // Single product detail
gql.getMyListings()            // Current user's listings
gql.getLikedProducts()         // Saved/liked items
gql.getMe()                    // Current user profile
gql.getConversations()         // Inbox threads
gql.getMessages(convId)        // Messages in a thread
gql.getMyTransactions()        // Purchase history

Available Mutations

mutations.toggleLike(productId)
mutations.addProduct(data)
mutations.sendMessage(convId, text, receiverId, productId)
mutations.createTransaction(productId, sellerId, amount)
mutations.completeTransaction(txId)
mutations.updateProfile(data)

💳 Payment Flow (Dummy)

The checkout is a 3-step flow:

  1. Details — Item summary, COD meeting point selection, price breakdown (3% platform fee)
  2. Payment — Dummy QR code + mock e-wallet options (no real money moves)
  3. Confirmed — Transaction record + prompt to message seller to arrange meetup

🎨 Design System

Token Value
Primary #2D6A4F (Forest Green — sustainability)
Accent #E8A838 (Warm Amber)
Background #F9F7F4 (Warm Off-White)
Surface #FFFFFF

🔧 Known Limitations (MVP Scope)

  • No real backend — all data is in-memory and resets on app restart
  • Image upload uses preset stock images (camera not wired in demo)
  • No push notifications (would require Expo Push or FCM)
  • Payment is fully simulated (Midtrans Sandbox not integrated)
  • No real-time WebSocket messaging (simulated with setInterval)

📚 Based On

Thriftversity E-Business Report — Program Studi Sistem Informasi, Fakultas Teknik dan Informatika, Universitas Multimedia Nusantara

Business model frameworks from Laudon & Traver's E-Commerce: Business. Technology. Society.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages