Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ Desk booking app

Web-based application designed to streamline the process of reserving desks in a workplace. It provides secure user authentication, desk availability management, and scheduling features to enhance productivity and optimize workspace utilization.

πŸš€ Features

  • Secure User Authentication: Users can sign up and log in using their email and password, ensuring secure access to the platform.

  • Desk Reservation: Allows employees to view available desks, select a time slot, and reserve a desk according to their needs.

  • Multi-Layered Security: Implemented with Spring Security, including role-based access controls and robust password hashing, ensuring user data is protected.

  • Automated Workflows: Developed GitHub Actions to automate testing and deployment, saving time and ensuring smooth operations.

  • High Test Coverage: Achieved over 96% unit test coverage, ensuring code reliability and reducing the likelihood of bugs.

  • Database Management: Designed and integrated a MySQL database to manage desk availability, user data, and reservation records with Flyway for database version control and Cloud SQL for automated backups.

πŸ› οΈ Technologies & Tools

  • Backend: Java, Spring Boot
  • Frontend: React.js
  • Database: MySQL
  • Security: Spring Security, JWT for authentication
  • Testing: JUnit, Mockito, Cucumber, Protractor
  • CI/CD: GitHub Actions
  • Infrastructure: Docker, GCP (Google Cloud Platform)

πŸ“¦ Installation

  1. Clone the repository:
git clone https://github.com/Cipppp/Desk-booking-app.git
cd Desk-booking-app
  1. Set up the backend:
cd backend
./mvnw clean install ./mvnw spring-boot:run
  1. Set up the frontend:
cd frontend
npm install
npm start
  1. Configure the database:

    • Make sure MySQL is installed and running.
    • Update the application.properties file with your database credentials.
    • Use Flyway for managing database migrations.

πŸš€ Usage

  1. User Authentication:

    • Users can sign up with their email and password.
    • Secure login ensures that only authorized users can access the platform.
  2. Desk Reservation:

    • View available desks and make reservations according to your schedule.
    • Manage your reservations directly from your profile.
  3. Admin Panel:

    • Admins can manage user accounts, desk availability, and monitor usage patterns.

πŸ§ͺ Testing

  • Unit Tests: Run unit tests using JUnit and Mockito:
./mvnw test
  • Integration Tests: Run integration tests using Cucumber:
./mvnw integration-test

πŸŽ‰ Contributing

Contributions are welcome! Please feel free to submit a PR or open an issue to discuss changes.

πŸ“„ License

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

About

DeskBooking is a web app for easy and secure desk reservations, optimizing workspace use and boosting productivity.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages