Skip to content
Rudradev02Public

About

Cross-platform photo booking app connecting customers with photography services: browse packages, book dates, get push notifications. React Native + Expo, Node/Express, PostgreSQL, Drizzle ORM, TypeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

11 Commits

Folders and files

Repository files navigation

๐Ÿ“ธ Lency - Photo Booking App

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.

โœจ Features

๐Ÿ‘ค Customer Features

  • 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

๐Ÿ“… Booking Management

  • Create photography bookings
  • Select preferred booking dates
  • Manage booking information
  • Track booking status
  • Store booking data securely
  • Connect booking data with the backend API

๐Ÿ“ Location Services

  • Access device location
  • Location-based functionality
  • Permission handling through Expo Location

๐Ÿ”” Notifications

  • Push notification support
  • Booking-related notifications
  • Expo Notifications integration

๐Ÿ–ผ๏ธ Media

  • Image selection using device gallery
  • Image preview functionality
  • Expo Image Picker integration

๐Ÿ› ๏ธ Tech Stack

Mobile Application

  • 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

Backend

  • Node.js - Backend runtime
  • Express.js - REST API server
  • TypeScript - Backend development
  • WebSocket - Real-time communication

Database

  • PostgreSQL - Relational database
  • Drizzle ORM - Database ORM
  • Drizzle Kit - Database schema and migration management

State & Data Management

  • TanStack React Query - Server-state and API data management
  • AsyncStorage - Local data persistence
  • Zod - Data validation

Expo & Native Features

  • 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

Development Tools

  • Git - Version control
  • GitHub - Source code management
  • ESLint - Code quality and linting
  • VS Code - Development environment
  • Replit - Development environment

๐Ÿ—๏ธ Application Architecture

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

๐Ÿ”„ How It Works

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.


๐Ÿ“ฑ Screenshots

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

โš™๏ธ Installation

Prerequisites

Make sure you have installed:

  • Node.js
  • npm
  • Expo CLI
  • PostgreSQL

1. Clone the repository

git clone https://github.com/Rudradev02/Lency-Photo-Bookings-App.git

cd Lency-Photo-Bookings-App

2. Install dependencies

npm install

3. Configure environment variables

Create a .env file and configure the required database and application environment variables.

DATABASE_URL=your_postgresql_database_url

Add any additional environment variables required by the application.

4. Setup the database

Push the database schema using Drizzle:

npm run db:push

5. Start the backend

npm run server:dev

6. Start the Expo application

In another terminal:

npm start

Then open the application using:

  • Expo Go
  • Android Emulator
  • iOS Simulator
  • Web browser

๐Ÿ“œ Available Scripts

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

๐ŸŽฏ Project Goals

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

๐Ÿ”ฎ Future Improvements

  • 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

๐Ÿ‘จโ€๐Ÿ’ป Author

Rudra Kumbhani

GitHub: @Rudradev02


โญ Project

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.

About

Cross-platform photo booking app connecting customers with photography services: browse packages, book dates, get push notifications. React Native + Expo, Node/Express, PostgreSQL, Drizzle ORM, TypeScript.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages