Welcome to the GitHub repository of Group 7, we are computer engineering students at Boğaziçi University taking Fundamentals of Software Engineering (CMPE352) in Spring term of 2022. Wiki containing weekly meeting notes, member profiles, researchs and templates can be found here.
ideart. is an art community platform for browsing and sharing art content. The platform will offer functionalities such as exhibitions, online galleries, discussion forum, auctions and annotations. Currently, we are offering a subset of features which will be present in the final app. With the changes in this tag, we are adding signup and signin functionalities. In addition to signin and signup, we also have home, art item and event pages where we display data we fetch mock data from the database.
- Website: https://ideart.tk/
- API: https://ideart.tk/api/
- API Documentation: https://ideart.tk/api/swagger-ui/index.html
- Annotation Service: https://ideart.tk/annotations
docker-compose up
command will build the images from scratch and run the containers with determined environment varibles in the first run. If this command is previously ran and a change is done on backend, docker-compose up --build
command should be used if hot reload doesn't detect the changes.
docker-compose up -d
command will detach the containers upon execution.
To stop and remove the containers use docker-compose down
MySQL data is assigned to a certain volume, so in each rebuild it will conserve the changes. To start with a clear volume, you can either remove the volume part from docker-compose.yml
file or remove the volume with docker volume rm mysql_data
WORKDIR=./docker
To run the development version of the application use the following commands filling "image-name" field with your chosen name:
docker build -f backend.development.Dockerfile -t "image-name" ../backend
docker run --env-file=.env -p 8080:8080 -t "image-name"
To run the production version of the application use the following commands:
- Fill the "image-name" with your chosen image name
- For "production-env-file.env" create an environment variable file, you can use the current
.env
file uploaded to repository as your template.
docker build -f backend.production.Dockerfile -t "image-name" ../backend
docker run --env-file="production-env-file.env" -p 8080:8080 -t "image-name"
WORKDIR=./docker
To run the frontend in development mode (with hot reload), docker-compose up
will be the best way, but if you want to manually build and run the image the following command will work:
docker build -f frontend.development.Dockerfile -t "frontend-image-name" ../frontend
docker run -p 3000:3000 -t "frontend-image-name"
The production build of frontend uses NGINX to serve static files, also NGINX works as a reverse proxy for backend application. To create the image and run:
docker build -f frontend.production.Dockerfile -t "production-frontend-image" ../frontend
docker run -p 80:80 -t "production-frontend-image
- Fill the parts between
""
as you wish.
WORKDIR=./docker
To run the annotation microservice in development mode docker-compose up
will be the best way, but if you want to manually build and run the image the following command will work:
docker build -f annotation.development.Dockerfile -t "annotation-image-name" ../annotations
docker run -p 3001:3001 -t "annotation-image-name"
The production build doesn't work differently then the development build, the only difference is the db connection settings on production environment. Using the following commands will build and run the image.
docker build -f annotation.production.Dockerfile -t "production-annotation-image" ../annotations
docker run -p 3001:3001 -t "production-annotation-image