Skip to content

technovert-yogi/furniture-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Furnique - Interior Design Furniture App

A full-stack mobile application for browsing interior design furniture across categories like Antique, Wooden, Marble, Glass, Metal, and Rattan.

Tech Stack

  • Mobile: React Native CLI + TypeScript
  • Backend: NestJS + TypeORM + MySQL
  • Auth: JWT (JSON Web Tokens)
  • Theme: Dark greenish color palette

Project Structure

furniture-app/
├── backend/         # NestJS API server
│   ├── src/
│   │   ├── auth/        # Authentication (register, login, forgot/reset password)
│   │   ├── users/       # User profile management
│   │   ├── categories/  # Furniture categories
│   │   ├── furniture/   # Furniture items (CRUD, filters)
│   │   ├── contact/     # Contact inquiries
│   │   └── seed/        # Database seeding
│   └── .env             # Environment variables
│
├── mobile/          # React Native app
│   ├── src/
│   │   ├── api/         # Axios API client + service modules
│   │   ├── components/  # Reusable UI components
│   │   ├── context/     # Auth context (state management)
│   │   ├── navigation/  # React Navigation setup
│   │   ├── screens/     # All app screens
│   │   └── theme/       # Colors, typography, spacing
│   └── App.tsx
└── README.md

Prerequisites

  • Node.js >= 18
  • MySQL running on localhost:3306
  • React Native development environment set up (Xcode for iOS / Android Studio for Android)

Backend Setup

  1. Create the MySQL database:
mysql -u root -e "CREATE DATABASE IF NOT EXISTS furniture_db;"
  1. Install dependencies and start:
cd backend
npm install
npm run start:dev

The backend will start at http://localhost:3000 and automatically:

  • Create all database tables (via TypeORM synchronize)
  • Seed 6 categories, 30 furniture items, and a test user
  1. Test user credentials:
  • Email: test@furniture.com
  • Password: password123

Mobile Setup

  1. Install dependencies:
cd mobile
npm install
  1. For iOS:
cd ios && pod install && cd ..
npx react-native run-ios
  1. For Android:
npx react-native run-android

API Endpoints

Method Endpoint Auth Description
POST /api/auth/register No Register new user
POST /api/auth/login No Login and get JWT
POST /api/auth/forgot-password No Request password reset code
POST /api/auth/reset-password No Reset password with code
GET /api/users/profile Yes Get current user profile
PATCH /api/users/profile Yes Update profile
PATCH /api/users/change-password Yes Change password
GET /api/categories No List all categories
GET /api/categories/:id No Get category with furniture
GET /api/furniture No List furniture (with filters)
GET /api/furniture/:id No Get furniture detail
POST /api/contact Yes Submit contact inquiry

App Flow

  1. Login/Register - Dark green themed auth screens
  2. Home - Featured furniture carousel, category chips, full furniture grid
  3. Categories - Browse by category (Antique, Wooden, Marble, Glass, Metal, Rattan)
  4. Furniture Detail - Image carousel, price, rating, dimensions, material, description
  5. Contact Us - Company info + inquiry form (can pre-fill from furniture detail)
  6. Profile - View/edit profile, change password, logout
  7. Forgot Password - Reset code sent to backend console (dev mode)

Environment Variables (backend/.env)

DB_HOST=localhost
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=
DB_NAME=furniture_db
JWT_SECRET=furniture_app_secret_key_2026
JWT_EXPIRATION=7d
PORT=3000

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors