SpendApp is a premium React Native application built with Expo and TypeScript, following the Atomic Design architecture.
- Navigate to the project directory:
cd spend-front - Install dependencies:
yarn install
- Web:
yarn web(Best for rapid UI development) - Development Menu:
yarn start(Scan the QR code with Expo Go) - Android:
yarn android - iOS:
yarn ios
The application is configured to automatically communicate with the Spend API Gateway.
The app automatically detects the local IP of your machine to connect to the backend (Port 3000 by default). This allows testing on physical devices without manual configuration.
You can override the default API URL by creating/modifying the .env file:
EXPO_PUBLIC_API_URL=http://your-ip:3000/api
EXPO_PUBLIC_WS_URL=http://your-ip:3001The project structure follows the Atomic Design methodology for maximum reusability:
- src/components/atoms: Smallest units (Button, Input, Typography, Card).
- src/components/molecules: Combinations of atoms (Toast, AddressAutocomplete, TransactionItem).
- src/components/organisms: Complex UI sections (AppMap, TransactionForm).
- src/services: API clients and business logic (Auth, Geolocation, Address).
- src/providers: React Context providers (Auth, Notifications).
- app/: File-based routing using
expo-router.
- 🔐 Authentication: Full login/register flow with persistent JWT storage.
- 🗺️ Maps: Interactive map tracking your transactions globally.
- 🏠 Address Autocomplete: Direct integration with OpenStreetMap (Nominatim) with 1s rate-limiting.
- 🔔 Global Notifications: Event-driven Toast system for errors and successes.
- 📱 Cross-Platform: Tailored layouts for both Mobile and Web.
Developed with ❤️ by the SpendApp Team.