https://github.com/aaronksaunders/appwrite-exporouter-app
Expo Router AppWrite Authentication Drawer Navigation with Nested Tabs
https://github.com/aaronksaunders/appwrite-exporouter-app
appwrite-auth appwrite-expo appwrite-react-native expo-appwrite expo-router-auth expo-router-drawer expo-router-tabs react-native-appwrite
Last synced: 2 months ago
JSON representation
Expo Router AppWrite Authentication Drawer Navigation with Nested Tabs
- Host: GitHub
- URL: https://github.com/aaronksaunders/appwrite-exporouter-app
- Owner: aaronksaunders
- Created: 2024-11-08T04:10:42.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-11-14T18:33:38.000Z (6 months ago)
- Last Synced: 2025-01-21T20:11:21.211Z (4 months ago)
- Topics: appwrite-auth, appwrite-expo, appwrite-react-native, expo-appwrite, expo-router-auth, expo-router-drawer, expo-router-tabs, react-native-appwrite
- Language: TypeScript
- Homepage:
- Size: 1.1 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Expo Authentication App 🔐
A modern authentication application built with [Expo](https://expo.dev), featuring a complete authentication flow using [Appwrite](https://appwrite.io) as the backend service.
## Features
- 🔒 Complete authentication flow
- User sign-in
- User registration
- Secure session management
- Logout functionality
- 📱 Modern UI with Tailwind CSS
- 🎯 TypeScript for type safety
- 📁 Organized file structure with Expo Router
- 🔄 Context-based state management## Project Structure
```
app/
├── (app)/ # Protected app routes
│ ├── (drawer)/ # Drawer navigation
│ │ └── (tabs)/ # Tab navigation
│ │ └── index.tsx # Home screen
│ └── _layout.tsx # App layout with auth protection
├── sign-in.tsx # Sign in screen
├── sign-up.tsx # Sign up screen
└── _layout.tsx # Root layout
```## Getting Started
1. Clone the repository
```bash
git clone [repository-url]
```2. Install dependencies
```bash
npm install
```3. Set up environment variables
Create a `.env` file with your Appwrite credentials:
```env
EXPO_PUBLIC_APPWRITE_ENDPOINT=your-endpoint
EXPO_PUBLIC_APPWRITE_PROJECT_ID=your-project-id
```4. Start the development server
```bash
npx expo start
```## Technology Stack
- **Frontend Framework**: Expo/React Native
- **Styling**: Tailwind CSS (via NativeWind)
- **Navigation**: Expo Router
- **Backend**: Appwrite
- **Language**: TypeScript
- **State Management**: React Context## Key Components
- **Authentication Context**: Manages user session state and auth operations
- **Protected Routes**: Automatic redirection for unauthenticated users
- **Drawer Navigation**: Side menu for app navigation
- **Tab Navigation**: Bottom tabs for main app sections## Development
To start developing:
1. Run the development server:
```bash
npx expo start
```2. Choose your preferred development environment:
- Press `i` for iOS simulator
- Press `a` for Android emulator
- Scan QR code with Expo Go app for physical device## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request## Learn More
- [Expo Documentation](https://docs.expo.dev/)
- [Appwrite Documentation](https://appwrite.io/docs)
- [NativeWind Documentation](https://www.nativewind.dev/getting-started/expo-router)
- [Expo Router Documentation](https://docs.expo.dev/router/introduction/)## GitHub Issues Referenced
- https://github.com/react-navigation/react-navigation/issues/12237
## License
This project is licensed under the MIT License - see the LICENSE file for details.