Storytellr is a project for writers and readers. As a user you can write books, publish them and read the books of other people. There should be interaction between readers and writers. This project was developed by Marvin Hill and Janina Dörflinger from Heilbronn University for Application Projekts in SoSE 2024.
- Account sign in / sign out with keycloak
- Create a book on the platform
- Upload a cover-image
- Create chapters
- Editor js integration to write the chapters
- Read chapters with a endless scroll view
- Book details page with description, author name etc.
- Browse Books on the Landing-Page
- Set book or chapter public
- Community polls component that can be used in any chapter
- Chapter read progress
- Library for users to save books, to read later or to find books again faster
- feature/
- bug/
- chore/
Commits use the Conventional Commit Structure naming pattern.
A helper tool can be found at link.
Current existing Scopes in Storytellr
- api
- webapp
- proxy
- infra
- keycloak
- publicdata
- The infra folder contains the infrastructure as code.
- The webapp folder contains the angular frontend projekt.
- The api folder contains a spring boot backend api service that is consumed by the webapp.
- Make sure to configure
git config --global core.autocrlf false
before cloning the project.
- injects client secret from env file into keycloak conf
docker compose -p buildstep -f build.yml --profile dev up -d
- create a
.env
file in the same folder as thedocker-compose.yml
file - run
docker compose -p storytellr --profile dev up -d
.
.env File Content
KEYCLOAK_DATABASE_VENDOR
KEYCLOAK_DB_SCHEMA
KEYCLOAK_DB_URL
KEYCLOAK_DATABASE_USER
KEYCLOAK_DATABASE_NAME
KEYCLOAK_DATABASE_PASSWORD
KEYCLOAK_HTTP_RELATIVE_PATH
KEYCLOAK_ADMIN_USER
KEYCLOAK_ADMIN_PASSWORD
KEYCLOAK_REALM
KEYCLOAK_ADMIN_API_HOST_URI
KEYCLOAK_ISSUER_URI
KEYCLOAK_FRONTEND_CLIENT_ID
API_DATABASE_USER
API_DATABASE_PASSWORD
API_DATABASE_NAME
API_DATABASE_DRIVER_CLASS_NAME
API_JPA_DATABASE_PLATFORM
API_HIBERNATE_MODE
API_JPA_SHOW_SQL
API_KEYCLOAK_CLIENT_CLIENT_ID
API_KEYCLOAK_CLIENT_SECRET
MONGODB_HOST
MONGODB_PORT
API_DEBUG_LEVEL
BACKEND_CLIENT_USERNAME
BACKEND_CLIENT_SECRET
- create a env file like in dev mode
- run
docker compose -p storytellr --profile prod up -d