Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fabbio00/worknest

WorkNest is a university project designed to manage desk and meeting room bookings in co-working spaces. Built with Vue.js, Java (Spring), and PostgreSQL, the platform allows users and companies to manage reservations efficiently. Docker is used to containerize and simplify deployment across environments.
https://github.com/fabbio00/worknest

ci-cd docker gitflow java postgresql scrum-agile spring vuejs

Last synced: about 1 month ago
JSON representation

WorkNest is a university project designed to manage desk and meeting room bookings in co-working spaces. Built with Vue.js, Java (Spring), and PostgreSQL, the platform allows users and companies to manage reservations efficiently. Docker is used to containerize and simplify deployment across environments.

Awesome Lists containing this project

README

        

# WorkNest-Overview

Undergraduate project of the course [Design Lab](https://elearning.unimib.it/course/info.php?id=51444) (MSc in Computer Science at [University of Study in Milan-Bicocca](https://en.unimib.it/)).

The purpose of this project, in addition to testing different technologies, was to follow the development done through agile methods, in particular SCRUM

**WorkNest** is a web application designed to facilitate the booking of desks and meeting rooms within a co-working space by end users and companies. The application allows users to browse available workspaces, make bookings, manage their reservations, and create communities. Companies have access to a dedicated section for managing employees and their bookings. WorkNest also includes an administration section for managing user data, bookings, and agreements with other companies. The application is built using `Vue.js` for the frontend, `Java` with `Spring` framework for the backend, and `PostgreSQL` for the database.
To streamline the development and deployment process, we utilize Docker with Docker Compose. This setup allows us to containerize the frontend, backend, and database components, ensuring that each part of the application can be easily set up, scaled, and maintained across different environments. Docker Compose simplifies the management of these containers by allowing us to define and run multi-container.

# Table of contents

- [WorkNest](#worknest-overview)
- [Technologies Used](#technologies-used)
- [Architectural Approach](#architectural-approach)
- [Contributors](#contributors)
- [License](#license)

# Technologies Used
### Frontend:
**Vue.js** as frontend framework, **npm** as packet manager for Javascript, **CSS** and **Vuetify** for the styling of frontend components

### Backend:
**Java/Spring** as backend framework, **Maven** as an automation tool for the Java projects and dependencies management.

### Database:
**PostgreSQL** as Database and **Flyway** as database migration tool manager

### Containerization and Orchestration:
**Docker** and **Docker-compose** to effectively manage create and manage containers

# Architectural Approach
- **Multi-Tier Architecture**: The application architecture follows a multi-tier approach to separate concerns and improve maintainability.
- **Frontend (View Tier)**: The user interface of the application is built using Vue.js. This tier is responsible for presenting the data to the user and handling user interactions.
- **Backend (Application Tier)**: The business logic and application functionality are handled by the Java/Spring backend. This tier processes user requests, performs business operations, and communicates with the database.
- **Database (Data Tier)**: PostgreSQL is used as the database management system to store and manage application data. This tier ensures data integrity, storage, and retrieval.

![Project Architecture](./project_architecture.png)

## Contributors

- [Riccardo Andena](mailto:[email protected])
- [Fabio Marini](mailto:[email protected])
- [Federico Salvo](mailto:[email protected])

## License

This project is licensed under the [MIT License](LICENSE) - see the [LICENSE](LICENSE) file for details.