VistaQs is a survey web application developed as a school project for Ins Rafael Campalans. The application is designed to facilitate the collection of street survey data.
Proposed exercise:
"We envision ourselves as a company dedicated to capturing data from street surveys. We have a team of individuals stationed at various locations, using tablets or smartphones to ask passersby a series of questions. These responses are then sent to a central server where the information is stored.
The survey consists of questions designed to gauge whether the respondent might be interested in a product we plan to market in the near future. The questions can be answered in various ways - a simple yes/no, a short answer, a rating, etc.
Our goal is to create the infrastructure and client/server developments to support our company's survey capture needs. Additionally, we aim to effectively manage the project, the code, and the generated documentation."
vistaQSPreview.mp4
VistaQs utilizes the following stack:
Area | Technology |
---|---|
Frontend | Angular 17.2 |
Backend | PHP 8.2.12 |
Laravel 10.43.0 | |
Database | PostgreSQL |
Deployment of the application is managed using Docker. The application is divided into three separate containers:
- Frontend Container: Houses the Angular application.
- Backend Container: Contains the PHP and Laravel backend.
- Database Container: Manages the PostgreSQL database.
Each container has its own Dockerfile, and a main Docker Compose file is used to orchestrate the building and running of these containers.
You will need the following installed on your system:
-
Git: Git is used for version control in this project. If it's not installed on your system, you can download it from https://git-scm.com/.
-
Node.js and npm: These are required for the frontend of the project. You can download and install them from https://nodejs.org/.
-
Angular CLI: This is used to serve the frontend of the project. You can install it globally on your system with
npm install -g @angular/cli
. -
PHP 8.2.12: This is required for the backend of the project. You can download and install it from https://www.php.net/.
-
Laravel 10.43.0: This is the framework used for the backend of the project. You can install it with
composer global require laravel/installer
. -
PostgreSQL: This is the database used in the project. You can download and install it from https://www.postgresql.org/.
-
Install PHP 8.2.12 on your system. You can download it from https://www.php.net/.
-
Install Laravel 10.43.0 on your system. You can do this with
composer global require laravel/installer
. -
Install PostgreSQL on your system. You can download it from https://www.postgresql.org/. After installation, ensure that the PostgreSQL service is running.
-
Clone this repository to your local system using
git clone https://github.com/oriolmontcreus/vistaQS.git
. -
Navigate to the Backend directory using
cd Backend
. -
Install the backend dependencies with
composer install
. -
Start the backend service with
php artisan serve
. -
Open another terminal and navigate to the Frontend directory using
cd ../Frontend
. -
Install the frontend dependencies with
npm ci
. -
To run the frontend on your local system, execute
ng serve --open --port 4201
in the command line. This will automatically open your browser with the webpage.
The deployment process is automated using a deploy.sh
script. This script also calls deploy_backend.sh
and start.sh
to streamline the deployment process.