Skip to content

echowaves/WiSaw

Repository files navigation

WiSaw - "What I Saw Today"

Version Platform License React Native Expo

Minimalistic social sharing • Incognito pics • Anonymous posting

🌟 Overview

WiSaw is a location-based, anonymous social sharing app that lets you capture and share moments without the complexity of traditional social media. No registration, no profiles, no followers - just pure, location-relevant content sharing.

✨ Key Features

  • 🚫 No Registration Required - Open the app and start sharing immediately
  • 📍 Location-Based Feed - See what's happening around you right now
  • 🎭 Anonymous Sharing - Share without revealing your identity
  • 🗑️ Community Moderation - Delete inappropriate content to improve quality for everyone
  • 🤖 AI Image Recognition - Automatic content descriptions using AI
  • 💬 Real-time Comments - Engage with posts through anonymous comments
  • 🔗 Deep Linking - Share specific photos and friend invitations
  • 📱 Cross-Platform - Available on iOS, Android, and Web

📱 Download

Download on the App Store
Get it on Google Play

🌐 Web Version: wisaw.com

🛠️ Tech Stack

Frontend

  • React Native (0.79.4) - Cross-platform mobile development
  • Expo (53.0.12) - Development platform and build system
  • Expo Router (5.1.0) - File-based routing system
  • TypeScript - Type-safe development
  • Jotai (2.8.4) - State management

Backend Integration

  • Apollo Client (3.9.7) - GraphQL client with caching
  • GraphQL (16.8.1) - API query language
  • WebSocket Subscriptions - Real-time updates

UI/UX

  • React Native Elements - UI component library
  • React Navigation - Navigation system
  • Expo Image - Optimized image handling
  • React Native Reanimated - Smooth animations

Device Features

  • Camera & Photo Library - Image capture and storage
  • Location Services - GPS-based content filtering
  • Push Notifications - Real-time alerts
  • Deep Linking - Share content and friend invitations

🏗️ Architecture

Project Structure

WiSaw/
├── app/                    # Expo Router app directory
│   ├── (drawer)/          # Drawer navigation layout
│   │   ├── (tabs)/        # Bottom tabs navigation
│   │   │   ├── index.tsx  # Main feed screen
│   │   │   ├── chat.tsx   # Chat/messaging screen
│   │   │   └── photos/    # Photo-related screens
│   │   ├── friends.tsx    # Friends management
│   │   └── feedback.tsx   # User feedback
│   └── _layout.tsx        # Root layout
├── src/                   # Source code
│   ├── components/        # Reusable components
│   ├── screens/           # Screen components (legacy)
│   ├── utils/             # Utility functions
│   ├── hooks/             # Custom React hooks
│   └── state.js           # Global state management
├── assets/                # Images, icons, splash screens
├── docs/                  # Documentation and guides
└── public/                # Static web assets

Key Features Implementation

🔧 Navigation System

  • Expo Router with file-based routing
  • Drawer Navigation for main app sections
  • Tab Navigation for primary features
  • Modal Navigation for overlays and forms

🎨 UI/UX Enhancements

  • Status Bar Handling - Platform-specific status bar management
  • Safe Area Support - Proper handling of device safe areas
  • Responsive Design - Adapts to different screen sizes
  • Loading States - User feedback during operations

🔄 State Management

  • Jotai for lightweight state management
  • Apollo Client Cache for GraphQL data
  • Local Storage for offline data persistence

🔐 Privacy & Security

  • Anonymous Posting - No user identification required
  • Location Privacy - Approximate location sharing only
  • Content Moderation - Community-driven content filtering

🚀 Getting Started

Prerequisites

  • Node.js (18+)
  • npm or yarn
  • Expo CLI
  • iOS Simulator (for iOS development)
  • Android Studio/Emulator (for Android development)

Installation

  1. Clone the repository

    git clone https://github.com/echowaves/WiSaw.git
    cd WiSaw
  2. Install dependencies

    npm install
  3. Set up environment variables

    # Create .env file with your API endpoints
    API_URI=your_graphql_endpoint
    REALTIME_API_URI=your_websocket_endpoint
    API_KEY=your_api_key
    PRIVATE_IMG_HOST=your_image_host
  4. Start the development server

    npm start

Development Scripts

# Start Expo development server
npm start

# Run on iOS simulator
npm run ios

# Run on Android emulator
npm run android

# Build for production
npm run build

# Deploy to production
npm run publish:prod

# Clear cache and reset
npm run clear
npm run reset:simulator

📋 Version Management

The app uses a centralized version management system:

  • Version: Defined in package.json and imported to app.config.js
  • Build Numbers: Automatically synced across iOS and Android
  • Single Source of Truth: All version info in package.json

To update the app version:

  1. Update version, buildNumber, and versionCode in package.json
  2. Changes automatically propagate throughout the app

🔧 Configuration

App Configuration

The app uses app.config.js for Expo configuration:

  • Platform-specific settings
  • Deep linking configuration
  • Push notification setup
  • Build properties

Environment Setup

  • Development: Uses Expo development server
  • Production: Built with EAS (Expo Application Services)
  • Web: Deployed as PWA

📖 Documentation

Developer Guides

Feature Documentation

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow TypeScript best practices
  • Use Expo Router for navigation
  • Implement proper error handling
  • Add documentation for new features
  • Test on both iOS and Android

📞 Support

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments


Made with ❤️ by Echowaves Corp.

Experience authentic, location-based social sharing

📱 Screenshots

Main Feed

Main feed showing nearby photos

Photo Search

Search and browse photos by relevance

Photo Details

Detailed photo view with AI descriptions

AI Recognition

AI-powered image recognition and tagging

Comments

Anonymous commenting system

Navigation Menu

App navigation and features

About

Incognito photos and short videos, anonymous posting.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published