Skip to content
This repository was archived by the owner on Dec 9, 2022. It is now read-only.

Commit 75bdaae

Browse files
authored
Merge pull request #64 from livepoll/develop
Continuous release
2 parents d8183ba + a35a2aa commit 75bdaae

File tree

70 files changed

+1968
-456
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1968
-456
lines changed

README.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,19 @@
1-
# Live-Poll API
2-
![Maven Build](https://github.com/livepoll/live-poll-api/workflows/CI/badge.svg)
3-
![Docker Build](https://img.shields.io/github/workflow/status/livepoll/live-poll-api/CI%20with%20Docker?label=Docker%20build)
4-
[![Quality Gate Status](https://sonarqube.live-poll.de/api/project_badges/measure?project=live-poll-api&metric=alert_status)](https://sonarqube.live-poll.de/dashboard?id=live-poll-api)
5-
[![codecov](https://codecov.io/gh/livepoll/live-poll-api/branch/master/graph/badge.svg)](https://codecov.io/gh/livepoll/live-poll-api)
1+
<p align="center">
2+
<img alt="Live-Poll Logo" src="./media/logo.png" height="220" />
3+
<h3 align="center">Live-Poll API</h3>
4+
<p align="center">Easy to use, web-based poll management system.</p>
5+
<p align="center">
6+
<a target="_blank" href="https://github.com/livepoll/live-poll-api/releases/latest"><img src="https://img.shields.io/github/v/release/livepoll/live-poll-api?include_prereleases"></a>
7+
<a target="_blank" href="https://github.com/livepoll/live-poll-api/blob/develop/.github/workflows/ci-with-docker.yml"><img src="https://img.shields.io/github/workflow/status/livepoll/live-poll-api/CI%20with%20Docker?label=Docker%20build"></a>
8+
<a target="_blank" href="./.github/workflows/ci.yml"><img src="https://github.com/livepoll/live-poll-api/workflows/CI/badge.svg"></a>
9+
<a target="_blank" href="https://sonarqube.live-poll.de/dashboard?id=live-poll-api"><img src="https://sonarqube.live-poll.de/api/project_badges/measure?project=live-poll-api&metric=alert_status"></a>
10+
<a target="_blank" href="https://codecov.io/gh/livepoll/live-poll-api"><img src="https://codecov.io/gh/livepoll/live-poll-api/branch/master/graph/badge.svg"></a>
11+
<a target="_blank" href="https://makeapullrequest.com"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg"></a>
12+
<a target="_blank" href="./LICENSE"><img src="https://img.shields.io/github/license/livepoll/live-poll-api"></a>
13+
</p>
14+
</p>
15+
16+
---
617

718
## Data structure
819
![Data structure](media/er-diagram.svg "Data structure")

env/.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
environment.env
2+
volumes/**
3+
!volumes/**/
4+
!.gitkeep

env/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Live-Poll Development Environment
2+
This software stack was generated with [Compose Generator](https://www.compose-generator.com). <br>
3+
The following sections contain instructions about the selected services and instructions for setting them up.
4+
5+
## MySQL Database
6+
MySQL is a relational database.
7+
8+
### Setup
9+
Compose Generator will ask you for the name of a dedicated database and the name of a dedicated user for your application. This database and user will be created on the first startup of the database container. Furthermore the cli automatically generates database user password for you, so you don't need to specify them yourself.
10+
11+
## PhpMyAdmin
12+
*To be extended ...*
13+

env/docker-compose.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
version: "3.9"
2+
services:
3+
database-mysql:
4+
image: mysql:8.0
5+
container_name: live-poll-dev-environment-db-mysql
6+
volumes:
7+
- ./volumes/mysql-data:/var/lib/mysql
8+
- ./volumes/mysql-logs:/var/log/mysql
9+
networks:
10+
- mysql-phpmyadmin
11+
ports:
12+
- 3307:3306
13+
env_file:
14+
- environment.env
15+
restart: always
16+
db-admin-phpmyadmin:
17+
image: phpmyadmin/phpmyadmin:latest
18+
container_name: live-poll-dev-environment-dbadmin-phpmyadmin
19+
volumes:
20+
- /sessions
21+
networks:
22+
- mysql-phpmyadmin
23+
ports:
24+
- 81:80
25+
env_file:
26+
- environment.env
27+
depends_on:
28+
- database-mysql
29+
networks:
30+
mysql-phpmyadmin: {}

env/start.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@echo off
2+
docker-compose up

env/stop.bat

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
@echo off
2+
docker-compose down

env/volumes/mysql-data/.gitkeep

Whitespace-only changes.

env/volumes/mysql-logs/.gitkeep

Whitespace-only changes.

media/er-diagram.drawio

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<mxfile host="Electron" modified="2020-12-01T14:49:46.982Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.9.9 Chrome/85.0.4183.121 Electron/10.1.5 Safari/537.36" etag="Frt-qX72jGXX9pKNGKZZ" version="13.9.9" type="device"><diagram id="Y2u06sh6tK30Ib6qwfq3" name="Page-1">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</diagram></mxfile>
1+
<mxfile host="Electron" modified="2021-04-08T15:38:30.805Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.5.1 Chrome/89.0.4389.82 Electron/12.0.1 Safari/537.36" etag="HehSOf6ZqWg16grFF9x3" version="14.5.1" type="device"><diagram id="Y2u06sh6tK30Ib6qwfq3" name="Page-1">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</diagram></mxfile>

media/er-diagram.svg

Lines changed: 1 addition & 1 deletion
Loading

0 commit comments

Comments
 (0)