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.
- Host: GitHub
- URL: https://github.com/echowaves/wisaw
- Owner: echowaves
- Created: 2018-06-21T01:05:03.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-07-13T20:16:11.000Z (over 1 year ago)
- Last Synced: 2024-07-14T01:32:45.699Z (over 1 year ago)
- Topics: expo, graphql, photo-sharing, react-native, social-media
- Language: JavaScript
- Homepage: https://www.wisaw.com
- Size: 73.2 MB
- Stars: 27
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# WiSaw - "What I Saw Today"
[](https://github.com/echowaves/WiSaw)
[](https://expo.dev)
[](LICENSE)
[](https://reactnative.dev)
[](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
**🌐 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
### Photo Search
### Photo Details
### AI Recognition
### Comments
### Navigation Menu
![]()