No description
Find a file
2023-01-25 19:04:51 +01:00
.vscode Revert back db tables check 2022-12-22 17:17:28 +01:00
cmd Fix main.go intendation 2022-12-24 20:35:47 +01:00
demo Integrated Fantastic coffie (decaffeinated) base version 2022-11-16 23:46:24 +01:00
doc OpenAPI: fix version 2023-01-25 11:06:33 +01:00
service Backend: Add force-unfollow action after ban 2023-01-24 18:20:34 +01:00
vendor PUT username now returns also 409 2022-11-26 15:14:41 +01:00
webui Remove stuff for the exam grader && improve README 2023-01-25 19:00:04 +01:00
.editorconfig Integrated Fantastic coffie (decaffeinated) base version 2022-11-16 23:46:24 +01:00
.gitignore Add db and data dir to gitignore 2022-12-10 01:26:00 +01:00
Dockerfile.backend Remove stuff for the exam grader && improve README 2023-01-25 19:00:04 +01:00
Dockerfile.embedded Dockerfile.embedded: Fix wrong npm script name 2023-01-25 19:04:51 +01:00
Dockerfile.frontend Add Dockerfile(s) for frontend and backend, renamed the existing one to Dockerfile.embedded 2022-12-23 01:54:03 +01:00
go.mod identity providers and bearerauth 2022-11-18 13:05:40 +01:00
go.sum identity providers and bearerauth 2022-11-18 13:05:40 +01:00
open-npm.sh First webui commit 2022-12-09 03:53:16 +01:00
README.md Remove stuff for the exam grader && improve README 2023-01-25 19:00:04 +01:00

CodeFactor

WASAPhoto

Keep in touch with your friends by sharing photos of special moments, thanks to WASAPhoto!

You can upload your photos directly from your PC, and they will be visible to everyone following you.

(Live demo: https://wasaphoto.marcorealacci.me)


This is my project for the Web And Software Architecture (WASA) class

This project includes

  • An API specification using the OpenAPI standard
  • A backend written in the Go language
  • A frontend in Vue.js
  • Dockerfiles to deploy the backend and the frontend in containers.
    • Dockerfile.backend builds the container for the backend
    • Dockerfile.frontend builds the container for the frontend
    • Dockerfile.embedded builds the backend container, but the backend's webserver also delivers the frontend

Before building

If you're building the project in production mode (see below), you need to specify the base URL for the backend in vite.config.js.

Build & deploy

The only (officially) supported method is via Docker containers.

There are two supported methods.

Embedded build

This method is only recommended for testing purposes or instances with very few users (for performance reasons).

The following commands will build a single container to serve both frontend and backend.

docker build -t wasaphoto -f Dockerfile.embedded .
docker run -p 3000:3000 -v <path to data directory>:/data --name wasaphoto wasaphoto

Everything will be up and running on port 3000 (including the Web UI).

Production build

This method build two containers, one for the backend and a container that running nginx to serve the frontend.

This is very recommended on production envinoments.

  1. Build and run the backend

    docker build -t wasabackend -f Dockerfile.backend .
    docker run -p 3000:3000 -v <path to data directory>:/data --name wasaphoto-backend wasabackend
    
  2. Edit the vite.config.js file and replace <your API URL> with the backend's base URL.

  3. Build and run the frontend

    docker build -t wasafrontend -f Dockerfile.frontend .
    docker run -p 8080:80 --name wasaphoto-frontend wasafrontend
    

The Web UI will be up and running on port 8080!