Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Modern web platform for connecting communities and sharing resources

Notifications You must be signed in to change notification settings

NiqueWrld/TropiLink

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒด TropiLink

React Native TypeScript Node.js Express Socket.io Stripe

A cross-platform super app for travel & payments in Seychelles ๐Ÿ‡ธ๐Ÿ‡จ


๐Ÿ“ธ Screenshots

TropiLink App

Android Emulator - Expo Installation

Installing on Android Emulator

WeChat Mini Program (ๅพฎไฟกๅฐ็จ‹ๅบ)

WeChat DevTools

Alipay Mini Program (ๆ”ฏไป˜ๅฎๅฐ็จ‹ๅบ)

Alipay Mini Program

Stripe Payment Integration

Real-Time Chat with Socket.io


๐Ÿ“– Overview

TropiLink is an all-in-one platform connecting tourists and locals with local services โ€” tours, taxis, boats, and more. Think of it as a mini Grab or WeChat tailored for the Seychelles islands.

โœจ Key Features

  • ๐Ÿš• Service Booking โ€” Book tours, taxis, boats, and local experiences
  • ๐Ÿ’ฌ Real-Time Chat โ€” Instant messaging between users and service providers
  • ๐Ÿ’ณ Multi-Payment Support โ€” Stripe, WeChat Pay, Alipay integration
  • ๐ŸŒ Chinese Mini Programs โ€” WeChat, Alipay, and Baidu Smart Programs for Chinese tourists
  • ๐Ÿ“ฑ Cross-Platform โ€” Mobile apps for iOS, Android, and Web
  • ๐Ÿ–ฅ๏ธ Admin Dashboard โ€” Comprehensive management interface

๐Ÿ—๏ธ Project Structure

TropiLink/
โ”œโ”€โ”€ backend/                 # Node.js + Express API Server
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ controllers/     # Route handlers
โ”‚   โ”‚   โ”œโ”€โ”€ models/          # Database models
โ”‚   โ”‚   โ”œโ”€โ”€ routes/          # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ middleware/      # Auth, validation
โ”‚   โ”‚   โ”œโ”€โ”€ services/        # Business logic
โ”‚   โ”‚   โ””โ”€โ”€ utils/           # Helper functions
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ user-app/                # React Native / Expo Mobile App
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ screens/         # App screens
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # Reusable components
โ”‚   โ”‚   โ”œโ”€โ”€ navigation/      # React Navigation setup
โ”‚   โ”‚   โ”œโ”€โ”€ services/        # API & Socket services
โ”‚   โ”‚   โ”œโ”€โ”€ context/         # React Context (Auth, etc.)
โ”‚   โ”‚   โ””โ”€โ”€ utils/           # Helpers & constants
โ”‚   โ”œโ”€โ”€ app.json             # Expo configuration
โ”‚   โ”œโ”€โ”€ eas.json             # EAS Build configuration
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ admin-dashboard/         # React Admin Panel
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ pages/           # Dashboard pages
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # UI components
โ”‚   โ”‚   โ””โ”€โ”€ services/        # API integration
โ”‚   โ””โ”€โ”€ package.json
โ”‚
โ”œโ”€โ”€ wechat-miniprogram/      # WeChat Mini Program (ๅพฎไฟกๅฐ็จ‹ๅบ)
โ”‚   โ”œโ”€โ”€ pages/               # Mini program pages
โ”‚   โ”œโ”€โ”€ app.js
โ”‚   โ”œโ”€โ”€ app.json
โ”‚   โ””โ”€โ”€ project.config.json
โ”‚
โ”œโ”€โ”€ alipay-miniprogram/      # Alipay Mini Program (ๆ”ฏไป˜ๅฎๅฐ็จ‹ๅบ)
โ”‚   โ”œโ”€โ”€ pages/               # Mini program pages
โ”‚   โ”œโ”€โ”€ app.js
โ”‚   โ””โ”€โ”€ app.json
โ”‚
โ”œโ”€โ”€ baidu-smartprogram/      # Baidu Smart Program (็™พๅบฆๆ™บ่ƒฝๅฐ็จ‹ๅบ)
โ”‚   โ”œโ”€โ”€ pages/               # Smart program pages
โ”‚   โ”œโ”€โ”€ app.js
โ”‚   โ””โ”€โ”€ project.swan.json
โ”‚
โ””โ”€โ”€ documentation/           # Project documentation

๐Ÿ› ๏ธ Tech Stack

Layer Technology
Backend Node.js, Express, TypeScript
Database Supabase (PostgreSQL)
Real-Time Socket.io (WebSocket)
User App React Native, Expo
Admin Dashboard React, TypeScript, Vite
Mini Programs WeChat, Alipay, Baidu
Payments Stripe, WeChat Pay, Alipay
Authentication JWT, Supabase Auth

๐Ÿš€ Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Expo CLI (npm install -g expo-cli)
  • EAS CLI (npm install -g eas-cli) โ€” for native builds

Installation

# Clone the repository
git clone https://github.com/NiqueWrld/TropiLink.git
cd TropiLink

# Install backend dependencies
cd backend
npm install

# Install user app dependencies
cd ../user-app
npm install

# Install admin dashboard dependencies
cd ../admin-dashboard
npm install

Environment Variables

Create .env files in each project:

Backend (backend/.env):

PORT=3000
DATABASE_URL=your_supabase_connection_string
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_anon_key
JWT_SECRET=your_jwt_secret
STRIPE_SECRET_KEY=sk_test_xxx
STRIPE_WEBHOOK_SECRET=whsec_xxx

User App (user-app/.env):

EXPO_PUBLIC_API_URL=http://localhost:3000/api
EXPO_PUBLIC_SOCKET_URL=http://localhost:3000
EXPO_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxx

Running the App

# Start backend server
cd backend
npm run dev

# Start user app (in a new terminal)
cd user-app
npm start
# Press 'w' for web, 'a' for Android, 'i' for iOS

# Start admin dashboard (in a new terminal)
cd admin-dashboard
npm run dev

๐Ÿ“ฑ Building Native Apps

TropiLink uses Expo EAS Build to compile native Android and iOS apps:

cd user-app

# Login to Expo
eas login

# Build Android APK (for testing)
npm run build:android:preview

# Build Android AAB (for Play Store)
npm run build:android

# Build iOS (requires Apple Developer account)
npm run build:ios

๐Ÿ‡จ๐Ÿ‡ณ Chinese Mini Programs

WeChat Mini Program (ๅพฎไฟกๅฐ็จ‹ๅบ)

# Open in WeChat DevTools
# Import project from: wechat-miniprogram/
# AppID: Your registered WeChat AppID

Alipay Mini Program (ๆ”ฏไป˜ๅฎๅฐ็จ‹ๅบ)

# Open in Alipay DevTools
# Import project from: alipay-miniprogram/

Baidu Smart Program (็™พๅบฆๆ™บ่ƒฝๅฐ็จ‹ๅบ)

# Open in Baidu DevTools
# Import project from: baidu-smartprogram/

๐Ÿ“ก API Endpoints

Authentication

Method Endpoint Description
POST /api/auth/register Register new user
POST /api/auth/login User login
POST /api/auth/logout User logout
GET /api/auth/me Get current user

Services

Method Endpoint Description
GET /api/services List all services
GET /api/services/:id Get service details
GET /api/services/category/:category Get by category
POST /api/services Create service (Provider)

Bookings

Method Endpoint Description
GET /api/bookings/my Get user's bookings
POST /api/bookings Create booking
PATCH /api/bookings/:id/cancel Cancel booking
POST /api/bookings/:id/rate Rate booking

Chat

Method Endpoint Description
GET /api/chat/conversations Get conversations
GET /api/chat/conversations/:id/messages Get messages
POST /api/chat/conversations/:id/messages Send message

๐Ÿ‘ฅ User Roles

Role Description
Tourist Visitors booking services
Local Residents using local services
Provider Business owners offering services
Admin Platform administrators

๐Ÿ’ณ Payment Integration

TropiLink supports multiple payment methods:

  • Stripe โ€” International credit/debit cards
  • WeChat Pay โ€” Chinese mobile payments
  • Alipay โ€” Chinese mobile payments

๐Ÿ”Œ WebSocket Events

Real-time features powered by Socket.io:

// Client events
socket.emit('join', { conversationId });
socket.emit('sendMessage', { conversationId, content });
socket.emit('typing', { conversationId });

// Server events
socket.on('newMessage', (message) => {});
socket.on('userTyping', (data) => {});
socket.on('bookingUpdate', (booking) => {});

๐Ÿ“„ License

This project is licensed under the MIT License.


๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


๐Ÿ“ง Contact

NiqueWrld - GitHub


Made with โค๏ธ for Seychelles ๐Ÿ‡ธ๐Ÿ‡จ

About

Modern web platform for connecting communities and sharing resources

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published