An open API service indexing awesome lists of open source software.

https://github.com/echowaves/wisaw

Incognito photos and short videos, anonymous posting.
https://github.com/echowaves/wisaw

expo graphql photo-sharing react-native social-media

Last synced: 4 months ago
JSON representation

Incognito photos and short videos, anonymous posting.

Awesome Lists containing this project

README

          

# WiSaw - "What I Saw Today"

[![Version](https://img.shields.io/badge/version-7.2.5-blue.svg)](https://github.com/echowaves/WiSaw)
[![Platform](https://img.shields.io/badge/platform-iOS%20%7C%20Android%20%7C%20Web-lightgrey.svg)](https://expo.dev)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![React Native](https://img.shields.io/badge/React%20Native-0.79.4-blue.svg)](https://reactnative.dev)
[![Expo](https://img.shields.io/badge/Expo-53.0.12-000020.svg)](https://expo.dev)

**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](https://www.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**

```bash
git clone https://github.com/echowaves/WiSaw.git
cd WiSaw
```

2. **Install dependencies**

```bash
npm install
```

3. **Set up environment variables**

```bash
# 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**
```bash
npm start
```

### Development Scripts

```bash
# 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

- [Deep Linking Implementation](docs/deep-linking-sharing-implementation.md)
- [Friends System](docs/friends-sharing-ux-improvements.md)
- [Navigation Architecture](docs/NAVIGATION_FIX_SUMMARY.md)
- [Version Management](docs/VERSION_CENTRALIZATION_SUMMARY.md)

### Feature Documentation

- [Comment System](docs/COMMENT_SEND_BUTTON_IMPLEMENTATION.md)
- [Feedback Screen](docs/FEEDBACK_SCREEN_FIX.md)
- [UI/UX Improvements](docs/name-picker-ux-improvements.md)

## 🤝 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

- **Website:** [echowaves.com](https://www.echowaves.com)
- **App Store:** [WiSaw on iOS](http://itunes.apple.com/us/app/wisaw/id1299949122)
- **Google Play:** [WiSaw on Android](http://play.google.com/store/apps/details?id=com.echowaves.wisaw)
- **GitHub:** [Issues & Bug Reports](https://github.com/echowaves/WiSaw/issues)

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🙏 Acknowledgments

- Built with [Expo](https://expo.dev) and [React Native](https://reactnative.dev)
- UI components from [React Native Elements](https://reactnativeelements.com)
- State management with [Jotai](https://jotai.org)
- GraphQL integration via [Apollo Client](https://www.apollographql.com/docs/react/)

---

**Made with ❤️ by [Echowaves Corp.](https://www.echowaves.com)**

_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