This app allows users to add apartments, manage bookings, and chat with apartment owners. It is built using Expo for the frontend and PostgreSQL for the backend.
- Apartment Listing: Owners can list their apartments with details such as name, price, location, and availability.
- Booking Management: Users can make reservations for available apartments and manage their bookings.
- Chat Functionality: Users can chat with the apartment owner regarding any queries or information.
- User Roles: Normal users can make reservations and view apartments, while owners can manage their listings and bookings.
- Frontend: Expo (React Native),TypeScript and Tailwind
- Backend: Node.js
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens) / bcryptJs for secure user authentication
- Real-time Chat: Stream Chat.
- Images: upload images from Firebase.
Before running this app, ensure you have the following installed:
- Node.js (LTS version)
- Expo CLI
- PostgreSQL database
-
Clone the repository:
git clone https://github.com/irabruce10/akaguriro cd akaguriro
-
Install dependencies:
pnpm install
-
Run the app:
pnpm expo start
This will start the development server and open the app in Expo Go or a simulator.
-
Navigate to the backend directory:
pnpm install
-
Install migrations dependencies:
pnpm install
-
Set up PostgreSQL database:
- Create a new PostgreSQL database.
- Set up the required tables (
users
,apartments
,bookings
,chats
, etc.). - Update the database configuration in the backend environment variables.
You will need to set the following environment variables in your .env
file:
DB_HOST
: PostgreSQL host (e.g., localhost)DB_USER
: PostgreSQL userDB_PASSWORD
: PostgreSQL passwordDB_NAME
: PostgreSQL database name
- Sign Up/Log In: Create an account or log in to access the features.
- Browse Apartments: View available apartments listed by owners.
- Search Apartments: Filter available apartments by Location,name,rooms
- Make a Reservation: Select an apartment and reserve it for your desired dates.
- User Dashboard: Manage your reservation delete and update.
- Chat with Owner: Send messages to the apartment owner about your booking.
- Sign Up/Log In: Create an owner account or log in.
- Add Apartment: List new apartments with details like name, price, and availability.
- Manage Bookings: View and manage incoming reservations.
- Chat with Users: Respond to users' messages and address their queries.
- Owner Dashboard: Manage All Apartments delete and update.
POST /auth/signup
: User registrationPOST /auth/login
: User login
GET /apartments
: Get a list of all available apartmentsPOST /apartments
: Add a new apartment (owner only)PUT /apartments/:id
: Update apartment details (owner only)DELETE /apartments/:id
: Delete an apartment listing (owner only)
POST /bookings
: Create a new bookingGET /bookings
: Get all bookings (user-specific)DELETE /bookings/:id
: Cancel a booking
POST /messages
: Send a message to the apartment ownerGET /messages/:ownerId
: Get all messages between user and owner
We welcome contributions! If you'd like to contribute to this project, please fork the repository and submit a pull request.
- Expo documentation for mobile app development.
- PostgreSQL for the database.
- Node.js and Express for the backend.
- Open-source libraries and resources used in the app development.
Feel free to modify and expand on this template as needed for your specific project!