Skip to content

itsjithinv/hylo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

hylo

✨ A comprehensive e-commerce marketplace platform with React Native mobile app and NestJS backend ✨.

πŸ—οΈ Project Overview

hylo is a full-featured e-commerce marketplace that connects local shops with customers. The platform supports:

  • Multi-shop marketplace - Multiple shops can list their products and services
  • Product management - Complete product catalog with categories, pricing, and inventory
  • Order management - Order processing, tracking, and delivery management
  • Location-based services - Shop discovery based on user location
  • Payment integration - Secure payment processing
  • Real-time features - Live order tracking and notifications

πŸ“Έ Screenshots

Here’s how the app looks:

Dashboard Feed List Multi Language - Hindi
Dashboard Feed List Multi Language - Hindi
Multi Language - Malayalam Search Shop or products Search Result
Multi Language - Malayalam Search Shop or products Search Result
Product List Product Details Cart
Product List Product Details Cart

πŸ—οΈ Project Structure

This workspace contains:

  • Gravity 🌍 - React Native/Expo mobile application for customers
  • Zenith πŸš€ - NestJS backend API server with comprehensive e-commerce features
  • Shared Libraries - Reusable UI components, types, and utilities

πŸš€ Quick Start

Prerequisites

  • Node.js 22.12.0 or higher
  • npm or yarn
  • For mobile development: Expo CLI, iOS Simulator/Android Emulator
  • PostgreSQL with PostGIS extension for location-based features

Installation

npm install

Configuration

1. API Domain Configuration

Before running the mobile app, you need to update the API base URL in the mobile app:

File: apps/gravity/src/api/base-api.ts

Change the baseURL to match your backend server:

export const baseApi = axios.create({
  baseURL: 'http://YOUR_SERVER_IP:3000/api', // Update this
  headers: { 'Content-Type': 'application/json' },
});

Note: For Expo development, use your computer's local IP address (e.g., 192.168.1.100) instead of localhost.

2. Environment Variables

Create the following environment files in the project root:

.env (Development)

# Database
DATABASE_URL="postgresql://postgres:password@localhost:5432/helios"

# JWT Authentication
JWT_SECRET="your-jwt-secret-key"

# Redis Cache
REDIS_URL="redis://localhost:6379"

# Server Configuration
PORT=3000
NODE_ENV=development

# SMS Service (Optional - for OTP functionality)
# SMS_PROVIDER="twilio"
# TWILIO_ACCOUNT_SID="your-twilio-account-sid"
# TWILIO_AUTH_TOKEN="your-twilio-auth-token"
# TWILIO_PHONE_NUMBER="your-twilio-phone-number"

# Email Service (Optional - for email notifications)
# SMTP_HOST="smtp.gmail.com"
# SMTP_PORT=587
# SMTP_USER="your-email@gmail.com"
# SMTP_PASS="your-app-password"

# Payment Gateway (Optional - for payment processing)
# STRIPE_SECRET_KEY="your-stripe-secret-key"
# STRIPE_PUBLISHABLE_KEY="your-stripe-publishable-key"

.env.production (Production)

# Database
DATABASE_URL="postgresql://username:password@host:5432/database_name"

# JWT Authentication
JWT_SECRET="your-production-jwt-secret-key"

# Redis Cache
REDIS_URL="redis://host:6379"

# Server Configuration
PORT=3000
NODE_ENV=production

# Enable these in production
# SMS_PROVIDER="twilio"
# TWILIO_ACCOUNT_SID="your-twilio-account-sid"
# TWILIO_AUTH_TOKEN="your-twilio-auth-token"
# TWILIO_PHONE_NUMBER="your-twilio-phone-number"

# SMTP_HOST="smtp.gmail.com"
# SMTP_PORT=587
# SMTP_USER="your-email@gmail.com"
# SMTP_PASS="your-app-password"

# STRIPE_SECRET_KEY="your-stripe-secret-key"
# STRIPE_PUBLISHABLE_KEY="your-stripe-publishable-key"

Important:

  • Replace placeholder values with your actual configuration
  • Commented variables are optional features that can be enabled later
  • Keep your .env files secure and never commit them to version control

πŸ“± Running the Applications

Mobile App (Gravity)

Start the React Native/Expo development server:

nx run gravity:start

This will start the Expo development server. You can then:

  • Press i to open iOS simulator
  • Press a to open Android emulator
  • Scan the QR code with Expo Go app on your device

Backend API (Zenith)

Start the NestJS development server:

nx run zenith:serve

The API will be available at http://localhost:3000

πŸ› οΈ Development Commands

Build Applications

# Build mobile app
nx run gravity:build

# Build backend
nx run zenith:build

Testing

# Run tests for all projects
nx run-many --target=test --all

# Run tests for specific project
nx run gravity:test
nx run zenith:test

Linting

# Lint all projects
nx run-many --target=lint --all

# Lint specific project
nx run gravity:lint
nx run zenith:lint

πŸ—„οΈ Database Management (Zenith)

The backend uses Prisma for database management:

# Generate Prisma client
nx run prisma:generate --schema=../../../apps/zenith/prisma/

# Create a new migration
nx run prisma:migrate --schema=../../../apps/zenith/prisma/

# Reset database
nx run prisma:reset --schema=../../../apps/zenith/prisma/

# Seed database with dummy data
nx run zenith:prisma-seed

🐳 Docker Support

Run the entire stack with Docker:

# Build and start all services
nx run zenith:docker-compose-up

# Stop all services
nx run zenith:docker-compose-down

# Build Docker image
nx run zenith:docker-build

# Run Docker container
nx run zenith:docker-run

πŸ“Š Project Visualization

Explore the project dependencies and structure:

# View project graph
nx graph

# View specific project details
nx show project gravity
nx show project zenith

πŸ—οΈ Adding New Projects

Install Nx Plugins

# Add React Native support
nx add @nx/react-native

# Add NestJS support
nx add @nx/nest

# Add Expo support
nx add @nx/expo

Generate New Projects

# Generate a new React Native app
nx g @nx/react-native:app my-app

# Generate a new NestJS app
nx g @nx/nest:app my-api

# Generate a new library
nx g @nx/js:lib my-lib

πŸ“š Useful Links

🀝 Contributing

  1. Install dependencies: npm install
  2. Start development servers:
    • Mobile: nx run gravity:start
    • Backend: nx run zenith:serve
  3. Make your changes
  4. Run tests: nx run-many --target=test --all
  5. Submit a pull request

πŸ“„ License

This software is licensed for internal use only by authorized personnel of hylo Technologies Pvt. Ltd.

For license terms, visit: https://hylo.com/license


Project Names Explained:

  • Gravity 🌍 - The force that keeps everything together, just like your mobile app manages all the user interactions
  • Zenith πŸš€ - Symbolizes the peak, highest point, powering everything from the backend

About

Hyper Local on-demand, quick-commerce service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors