Giter Site home page Giter Site logo

micahtessler / retroquest Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fordlabs/retroquest

0.0 0.0 0.0 2.37 MB

RetroQuest is a website that enables teams to run retrospectives online.

License: Apache License 2.0

Java 36.55% Shell 0.48% JavaScript 0.29% TypeScript 40.09% HTML 9.37% SCSS 13.21%

retroquest's Introduction

Welcome to RetroQuest!

Build Status

RetroQuest is a website that enables teams to run retrospectives online and in a fun way. It is designed to accomodate both local and distributed teams.

What is a Retro?

If you are unfamiliar with what a retrospective is, it is a meeting that is held at the and of each iteration on a Agile team. Retrospectives are designed to allow the team time to decompress and reflect upon what happened during the iteration and indentify actions that can improve the team as a whole.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Dependencies

What you need to install before building our project. This guide will assume you have a basic understanding of Git operations.

  1. OpenJDK11
  2. Lombok
  3. Docker and Docker Compose (Which is included in the desktop docker applications for Mac/Windows) or MariaDB
  4. Node.js

Build the Backend with Gradle

  1. Open a terminal in the api directory (location of gradle.build)
  2. Build the project with the following command: ./gradlew clean build This will trigger the backend tests to run.
  • If you do not wish to run the tests and only want to build the application, use ./gradlew clean assemble

Build the Frontend with npm

  1. Open a terminal in the ui directory (location of package.json)
  2. Run npm install to install the dependencies
  3. Build the project with the following command: npm run build-prod
  • This will place the compiled output into the api/src/main/resources/static and will be bundled in the next backend build

Running the Application

Running the application locally can be done with either an H2 in-memory database or with a docker container of MySQL.

In-Memory

The simplest way to get the application spun up is by using the in-memory database via Gradle:

./gradlew withH2

or

SPRING_PROFILES_ACTIVE=h2 ./gradlew bootRun

The schema produced for H2 may not conform exactly to the MySQL schema used in production.

Docker

Running the application locally with MySQL requires a running instance of the Docker MySQL container:

docker-compose up

Start the backend with Gradle:

./gradlew withDockerDb

or

SPRING_PROFILES_ACTIVE=dockerdb ./gradlew bootRun

Frontend

If you are only working on the backend, a static build will be accessible from localhost:8080 after running npm run build-prod

Start the frontend with npm for live development:

npm run start

This will start the frontend with a proxy to direct all requests to localhost:8080 where the api is running. The application will start at localhost:4200

Running the Backend Tests

This project includes unit tests, API tests, and Selenium tests.

After navigating to the api folder, the following Gradle targets will run the various test suites:

./gradlew test -- Java Unit Tests
./gradlew apiTest -- API Level integration tests with and H2 database
SPRING_PROFILES_ACTIVE=docker ./gradlew apiTest -- API Level integration tests with the Docker MySQL database

To run both the backend api and unit tests at once:

./gradlew runAllTests

Running the Frontend Tests

Navigate to the ui folder, making sure you've already followed the build steps for the frontend and run any of the following commands:

npm run unit -- Runs all tests and closes
npm run test -- Hot runs all tests

Running the E2E Tests

Start the backend application

./gradlew bootRun

Start the database

cd /api && docker-compose up

Run the end to end tests

cd /ui && npm run e2e

Connecting to the local Database

The application uses a MariaDB instance. The connection properties can be found in the application's property file.

Deploying to Google App Engine

Please read GOOGLE_APP_ENGINE.md for details on deploying Retroquest to Google App Engine.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for contributing, including how to fork and submit pull requests.

Built With

  • Angular - Frontend Javascript framework
  • node.js - JavaScript runtime engine
  • Gradle - Dependency management
  • Spring - Development framework

retroquest's People

Contributors

druage avatar devguy22 avatar crouchsnap avatar jonnynabors avatar lndobryden avatar milesjos avatar chiptopher avatar mschu124 avatar rkennel avatar thedavidharris avatar tsatam avatar adandach avatar tyler-tm avatar adamworkgithub avatar abarna10 avatar dnie12 avatar mikesmithson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.