Serenity Haven is a full-stack application for hotels where staff can manage their bookings, cabins, settings, users and view the dashboard with current sales, arrivals, departures and more statistics. App has been built using: Supabase, Vite, React.js, React Query, React Hook Form, React Router, and Styled Components while being optimized for desktop use but with full responsiveness up to 280px width.
Features:
- Authentication & Authorization using Supabase feature and ProtectedRoute component.
- Home Dashboard: Quick overview of today's arrivals and departures, current bookings, sales, check-ins, occupancy rate, and some graphs.
- Booking Management: Review all bookings, remove or update them, as well as review details of a specific booking.
- Cabin Administration: Add, remove, update, and duplicate cabins associated with the hotel.
- User Management: Add new staff users to the app.
- System Settings: Customize default system settings such as minimum and maximum booking nights, maximum guests, and breakfast prices.
- Sample Data Loading: Simplify the setup process by loading sample data, including bookings, cabins, guests, and more.
- Account Updates: Personalize your account by updating details such as name, password, and adding a custom avatar.
- Light & Dark Mode: Choose your theme with the dark/light mode toggle button.
Feel free to explore Serenity Haven using the following login credentials:
- Email address: user.tester@example.com
- Password: 1234
To get this project up and running on your local machine, follow these steps:
Make sure you have the following software installed on your system:
- Node.js
- npm (Node Package Manager)
- Clone the repository:
git clone https://github.com/adrian-prajsnar/serenity-haven.git
- Navigate to the project folder:
cd your-project
- Install the project dependencies:
npm install
- To run the project:
npm run dev
- To build the project:
npm run build
- To check for ESLint errors:
npm run lint
I welcome contributions from the community to enhance and improve this project. To contribute, please follow these steps:
- Fork the project repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
. - Make your changes and commit them with clear, descriptive messages.
- Push your branch to your fork:
git push origin feature/your-feature-name
. - Submit a pull request to the main repository, explaining the purpose and changes of your contribution.
I appreciate your contributions and will review and merge them as appropriate. Let's make this project better together!