Welcome to the README file for our second end-year school project at ESI SBA. We are excited to share the details of our collaborative effort in developing a comprehensive full-stack Property Management System (PMS) tailored for hotels. This project, undertaken as part of our second-year pluridisciplinary endeavor in 2CPI, involved the collective contributions of Mohamed Ayoub Ameri,Allaoua Okba, Youcef Hanaia, Oussama Salmi, Lydia Houyem Bouchelarem, under the guidance of Mr. Belkacem KHALDI.
- Supervisor : Pr.Khaldi Balkacem.
- Leader : Ameri Mohamed Ayoub
- Full Stack Team: Ameri Mohamed Ayoub,Allaoua Okba , Salmi Oussama, Hanaia Youcef
- UX/UI Design : Bouchelarem Lydia Houyem.
- Cloud Native Architect : Ameri Mohamed Ayoub.
Our primary objective was to design and implement a scalable and efficient system capable of managing various aspects of hotel operations. These included departments, rooms, housekeeping, restaurant, transport, authentication, staff management, and client functionalities such as booking, transportation, reviews, chat, and notifications.
- Framework: Next.js 13 with the app directory as the SSR framework.
- Language: TypeScript for enhanced type safety.
- Styling: TailwindCSS for efficient styling.
- Data Management: React Query for optimized data fetching, caching, and revalidation.
We adopted a microservices architecture to connect 11 backend services with the client-side, employing 2 API Gateways following the backend-for-frontend pattern. Each service was organized into a GitHub repository under our established organization (HMS-ESI-SBA). Technologies used include:
- Service Implementation: Express with TypeScript and MongoDB, Django with PostgreSQL.
- DevOps Technologies:
- Message Broker: RabbitMQ for asynchronous message brokering.
- CI/CD Pipeline: Azure DevOps facilitated continuous integration, continuous deployment, Dockerization, and deployment for each repository.
- Containerization: Docker for containerizing each service.
- Orchestration: Kubernetes for container orchestration.
- Infrastructure Management: Terraform for Infrastructure as Code (IaC).
- Cloud Provider: Azure.
- Testing: Adhered to a Test-Driven Development (TDD) approach.
- Monitoring: Utilized Prometheus and Grafana for monitoring purposes.
We extend our sincere appreciation to Mr. KHALDI for his exceptional guidance throughout this project. His trust in our abilities and valuable suggestions significantly contributed to the success of our project, ensuring a high-quality product that impressed the juries.
Despite the challenges posed by limited time constraints, we are proud to have achieved an impressive completion of backend functionalities and showcased various features on the client-side. This accomplishment stands as a testament to the dedication and hard work of our team.
Thank you to everyone who supported us throughout this incredible journey.