Skip to content

HoseaCodes/PropFlow-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PropFlow API 🏠

PropFlow API is a comprehensive property management system designed for Airbnb hosts in Dallas, Texas. It helps hosts manage their properties, track expenses, handle bookings, and maintain cleaning schedules while ensuring compliance with local regulations.

🚀 Features

  • Property Management

    • CRUD operations for properties
    • Property details and pricing management
    • STR permit tracking
    • Photo management
  • Booking Management

    • Reservation tracking
    • Check-in/check-out management
    • Guest communication logs
    • Occupancy tracking
  • Financial Management

    • Expense tracking
    • Revenue monitoring
    • Break-even analysis
    • Financial projections
    • Hotel occupancy tax calculations
  • Cleaning Management

    • Cleaning schedule
    • Customizable checklists
    • Service provider management
    • Quality tracking

🛠️ Tech Stack

Backend

  • Java 17
  • Spring Boot 3.2.0
  • Spring Security
  • Spring Data JPA
  • PostgreSQL
  • Maven
  • JWT Authentication

Frontend

  • Angular 16+
  • TypeScript
  • Tailwind CSS
  • Node.js 18+
  • npm

📋 Prerequisites

  • JDK 17 or later
  • Node.js 18.x or later
  • PostgreSQL 13 or later
  • Maven 3.8+
  • Git

🔧 Installation

Backend Setup

  1. Clone the repository
git clone https://github.com/yourusername/PropFlow-API.git
cd PropFlow-API
  1. Configure PostgreSQL
CREATE DATABASE airbnb_management;
  1. Update application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/airbnb_management
spring.datasource.username=your_username
spring.datasource.password=your_password
  1. Build and run the backend
mvn clean install
mvn spring-boot:run

🔒 Environment Variables

Create a .env file in the root directory and add the following:

# Database Configuration
DB_HOST=localhost
DB_PORT=5432
DB_NAME=airbnb_management
DB_USERNAME=your_username
DB_PASSWORD=your_password

# JWT Configuration
JWT_SECRET=your_jwt_secret
JWT_EXPIRATION=86400000

# Server Configuration
SERVER_PORT=8080

📚 API Documentation

Base URL

http://localhost:8080/api

Endpoints

Properties

  • GET /properties - Get all properties
  • GET /properties/{id} - Get property by ID
  • POST /properties - Create new property
  • PUT /properties/{id} - Update property
  • DELETE /properties/{id} - Delete property

Bookings

  • GET /bookings - Get all bookings
  • POST /bookings - Create new booking
  • PUT /bookings/{id} - Update booking status

Expenses

  • GET /expenses - Get all expenses
  • POST /expenses - Add new expense
  • GET /expenses/summary - Get expense summary

Steps to Build and Run the Docker Container

  1. Build the JAR file: Make sure you have built the JAR file of your Spring Boot application. You can do this by running:
 ./mvnw clean package
  1. Build the Docker image: Run the following command to build the Docker image:
  docker-compose build
  1. Run the Docker container: Run the following command to start the container:
  docker-compose up

This will start your Spring Boot application inside a Docker container and map port 8081 of the container to port 8081 on your host machine. You can access your application at http://localhost:8081.

🧪 Running Tests

Backend Tests

mvn test

Frontend Tests

ng test

🚀 Deployment

  1. Build the backend
mvn clean package
  1. Build the frontend
ng build --prod
  1. Deploy the generated artifacts to your server

📜 Dallas STR Regulations

Important regulations for Dallas Airbnb hosts:

  • STR Permit required for rentals ≤ 30 days
  • 7% hotel occupancy tax collection required
  • Compliance with local zoning restrictions
  • Written landlord permission required for rental properties

🤝 Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE.md file for details.

👥 Support

For support, email support@PropFlow.api or join our Slack channel.

✨ Acknowledgements

🛣️ Roadmap

  • Mobile application
  • Integration with Airbnb API
  • Smart pricing optimization
  • Automated guest communication
  • Advanced analytics dashboard
  • Multi-language support

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages