Lency is a modern cross-platform photo booking application designed to connect customers with photography services. Users can explore photography services, view available options, manage bookings, and interact with the application through a clean mobile-first interface.
The application is built using React Native and Expo with a Node.js/Express backend, PostgreSQL database, and Drizzle ORM.
- Browse available photography services
- View photography service details
- Explore available packages
- Create and manage bookings
- Select booking dates
- Manage customer information
- Upload/select images when required
- Receive application notifications
- View booking information and status
- Location-based functionality
- Responsive mobile interface
- Create photography bookings
- Select preferred booking dates
- Manage booking information
- Track booking status
- Store booking data securely
- Connect booking data with the backend API
- Access device location
- Location-based functionality
- Permission handling through Expo Location
- Push notification support
- Booking-related notifications
- Expo Notifications integration
- Image selection using device gallery
- Image preview functionality
- Expo Image Picker integration
- React Native - Cross-platform mobile application framework
- Expo SDK 54 - Development and build platform
- Expo Router - File-based application navigation
- TypeScript - Primary programming language
- React 19 - UI library
- React Native Web - Web support
- Node.js - Backend runtime
- Express.js - REST API server
- TypeScript - Backend development
- WebSocket - Real-time communication
- PostgreSQL - Relational database
- Drizzle ORM - Database ORM
- Drizzle Kit - Database schema and migration management
- TanStack React Query - Server-state and API data management
- AsyncStorage - Local data persistence
- Zod - Data validation
- Expo Location - Device location
- Expo Notifications - Push notifications
- Expo Image Picker - Image selection
- Expo Web Browser - Web content integration
- Expo Haptics - Haptic feedback
- Expo Linear Gradient - UI gradients
- React Native SVG - SVG rendering
- React Native Reanimated - Animations
- React Native Gesture Handler - Gesture interactions
- Git - Version control
- GitHub - Source code management
- ESLint - Code quality and linting
- VS Code - Development environment
- Replit - Development environment
Lency-Photo-Bookings-App
โ
โโโ Mobile Application
โ โโโ Screens
โ โโโ Components
โ โโโ Navigation
โ โโโ Booking UI
โ โโโ Native Features
โ
โโโ Backend
โ โโโ Express Server
โ โโโ API Routes
โ โโโ Business Logic
โ โโโ WebSocket
โ
โโโ Database
โ โโโ PostgreSQL
โ โโโ Drizzle ORM
โ โโโ Database Schema
โ
โโโ Configuration
โโโ Expo
โโโ TypeScript
โโโ ESLint
Customer
โ
React Native / Expo App
โ
API Requests
โ
Node.js + Express Server
โ
Drizzle ORM
โ
PostgreSQL Database
The mobile application communicates with the backend through API requests. The Express server handles application logic and database operations through Drizzle ORM.
Add screenshots of the main application screens here.
## ๐ฑ Screenshots
<p align="center">
<img src="screenshots/home.png" width="30%">
<img src="screenshots/services.png" width="30%">
<img src="screenshots/booking.png" width="30%">
</p>
<p align="center">
<img src="screenshots/bookings.png" width="30%">
<img src="screenshots/profile.png" width="30%">
</p>Recommended screenshots:
- Home screen
- Photography services
- Service details
- Booking screen
- Booking history
- Profile/settings
Make sure you have installed:
- Node.js
- npm
- Expo CLI
- PostgreSQL
git clone https://github.com/Rudradev02/Lency-Photo-Bookings-App.git
cd Lency-Photo-Bookings-Appnpm installCreate a .env file and configure the required database and application environment variables.
DATABASE_URL=your_postgresql_database_urlAdd any additional environment variables required by the application.
Push the database schema using Drizzle:
npm run db:pushnpm run server:devIn another terminal:
npm startThen open the application using:
- Expo Go
- Android Emulator
- iOS Simulator
- Web browser
| Command | Description |
|---|---|
npm start |
Start Expo development server |
npm run server:dev |
Start backend development server |
npm run db:push |
Push database schema |
npm run lint |
Check code with ESLint |
npm run lint:fix |
Automatically fix lint issues |
npm run server:build |
Build production backend |
npm run server:prod |
Start production backend |
The main goal of Lency is to create a complete digital booking experience for photography services while gaining practical experience in:
- Cross-platform mobile development
- REST API development
- Database design
- ORM-based database management
- Real-time communication
- Mobile navigation
- State management
- Native device features
- Type-safe application development
- Full-stack application architecture
- Online payment integration
- Photographer profiles
- Photographer availability calendar
- Customer reviews and ratings
- Advanced booking management
- Booking cancellation and rescheduling
- Real-time booking updates
- Admin dashboard
- Photographer dashboard
- Cloud image storage
- Analytics and reporting
- Production deployment
Rudra Kumbhani
GitHub: @Rudradev02
If you like this project, consider giving the repository a โญ on GitHub.
Built with โค๏ธ using React Native, Expo, TypeScript, Node.js, Express, PostgreSQL, and Drizzle ORM.