A modern authentication application built with Expo, featuring a complete authentication flow using Appwrite as the backend service.
- 🔒 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
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
-
Clone the repository
git clone [repository-url]
-
Install dependencies
npm install
-
Set up environment variables Create a
.env
file with your Appwrite credentials:EXPO_PUBLIC_APPWRITE_ENDPOINT=your-endpoint EXPO_PUBLIC_APPWRITE_PROJECT_ID=your-project-id
-
Start the development server
npx expo start
- Frontend Framework: Expo/React Native
- Styling: Tailwind CSS (via NativeWind)
- Navigation: Expo Router
- Backend: Appwrite
- Language: TypeScript
- State Management: React Context
- 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
To start developing:
-
Run the development server:
npx expo start
-
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
- Press
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.