Skip to content

dan-kingo/roomify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Roomify

A full-stack e-commerce platform with augmented reality features, supporting customers, sellers, and administrators.

Project Structure

├── backend/        # Node.js + Express + MongoDB backend API
└── mobile/         # React Native + Expo mobile app

Features

Mobile App

  • Customer Features

    • Browse products with beautiful grid layout
    • View detailed product information with image galleries
    • Shopping cart management
    • Place and track orders
    • Profile management
    • Apply to become a seller
  • Seller Features

    • Product management (add, edit, delete)
    • Upload product images and videos
    • Upload AR models for products
    • Track product approval status
    • Inventory management
  • Authentication

    • OTP-based registration
    • Phone + password login
    • Secure token-based authentication

Backend API

  • User authentication with OTP verification
  • Role-based access control (Customer, Seller, Admin)
  • Product management with approval workflow
  • Shopping cart and order management
  • Image and video upload with Cloudinary
  • Seller application and approval system

Technology Stack

Mobile App

  • React Native
  • TypeScript
  • Expo & Expo Router
  • React Native Reanimated (Animations)
  • React Native Paper (UI Components)
  • Axios
  • AsyncStorage

Backend

  • Node.js
  • Express
  • MongoDB + Mongoose
  • TypeScript
  • Twilio (OTP)
  • Cloudinary (File uploads)
  • JWT Authentication

Getting Started

Backend Setup

  1. Navigate to backend directory:
cd backend
npm install
  1. Create .env file with required variables (see backend/.env.example)

  2. Start the server:

npm run dev

Mobile App Setup

  1. Navigate to mobile directory:
cd mobile
npm install
  1. Update .env with your backend API URL

  2. Start Expo:

npm start
  1. Run on device:
  • Press i for iOS simulator
  • Press a for Android emulator
  • Scan QR code with Expo Go app on physical device

Design

  • Theme: Orange-yellow gradient on dark background
  • Primary Color: #FF8C00
  • Secondary Color: #FFB347
  • Background: #121212 (Dark)
  • Animations: Smooth transitions with React Native Reanimated

Role-Based Access

The app automatically adapts based on user role:

  • Customer: Can browse products, add to cart, place orders
  • Seller: Can manage their products, view seller-specific features
  • Admin: Web admin panel (to be implemented)

Users start as customers and can apply to become sellers through the app.

API Endpoints

Authentication

  • POST /api/auth/request-otp - Request OTP
  • POST /api/auth/verify-otp - Verify OTP
  • POST /api/auth/login - Login with password
  • GET /api/auth/me - Get current user

Products

  • GET /api/products - Get all products
  • GET /api/products/:id - Get product by ID
  • POST /api/products - Create product (Seller)
  • PUT /api/products/:id - Update product (Seller)
  • DELETE /api/products/:id - Delete product (Seller)

Cart

  • GET /api/cart - Get user cart
  • POST /api/cart - Add to cart
  • DELETE /api/cart/:productId - Remove from cart

Orders

  • POST /api/orders/checkout - Place order
  • POST /api/orders/:id/slip - Upload bank slip

Seller

  • POST /api/seller/apply - Apply for seller account

License

MIT

About

Roomify is a mobile app that helps people shop for furniture and home décor using Augmented Reality (AR).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages