Giter Club home page Giter Club logo

rememberbrall's Introduction

Rememberbrall is

a little program which helps to remember interesting stuff. Mostly it is a learning project to further develop my programming skills. Technologies like Spring Boot 2, Spring REST Docs, Heroku, AssertJ and Webflux are used.

The current build is

nice and green like always: Build Status Codacy Badge codecov

The start is

very easy. After you clone or fork the project, just use mvn clean package spring-boot:run to start the program. You can also check out the endpoints described in the documentation under https://rememberbrall.herokuapp.com.

rememberbrall's People

Contributors

evainga avatar mle-idealo avatar mle-enso avatar

Stargazers

David Graesser avatar  avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

mle-enso

rememberbrall's Issues

Missing SSE show case in RememberbrallController

I am pretty sure that we already had a show case of SSE in one of our controllers. This is no longer the case.
I would love to see such an endpoint may be similar to this one
@GetMapping(path = "/entries", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
but behaving with real SSEs
@GetMapping(path = "/entries", produces = MediaType.APPLICATION_STREAM_JSON_VALUE)

Integration tests write entries into live-db

Ever since mvn clean verify has been made obligatory for a deployment in heroku, with each deployment two Entry items ("LINUX Waschmittel") are written into the live db. This shouldn't happen.
Either the item must be deleted again after creation - or there is a possibility to use another db during the deployment verify process.

Change Entries

Offer possibility to change name, URL and category of an existing Entry

Make showAllEntries Test work again

The showAllEntries test still is disabled, which also means that its REST documentation doesn't work.

The error message says

Cannot handle text/html content as it could not be parsed as JSON or XML

How to solve this in a reactive way?

Setting up mongodb for local and production stages

rememberbrall.heroku.com is currently live with the latest commits you can see in the branch mongodb: https://github.com/evainga/rememberbrall/tree/mongodb
This works in heroku live version, however, the travis build failed as well as local builds fail. This is because i out commented spring.data.mongodb.database=demo to make spring.data.mongodb.uri=${MONGODB_URI} work for heroku.

So, which mongo should ideally interact on which stage with rememberbrall? Would it be good to use the same database for different stages - local, travis (=testing?) and in heroku (=production)? Because currently, the placeholder I use in heroku is not known locally and in travis.

Description:
Binding to target [Bindable@1cf0cacc type = java.lang.String, value = 'provided', annotations = array[[empty]]] failed:
Property: spring.data.mongodb.uri
Value: ${MONGODB_URI}
Origin: class path resource [application.properties]:7:25
Reason: Could not resolve placeholder 'MONGODB_URI' in value "${MONGODB_URI}"

Or - if every stage should have their own database (which I think they should), then the better question is: How can I define the distinction for the stages in application.properties?

Keep an eye on your automatic reports – periodically

Codacy currently reports at least one new potential code flaw...
https://www.codacy.com/app/evainga/rememberbrall/issues/index?&filters=W3siaWQiOiJDYXRlZ29yeSIsInZhbHVlcyI6WyJDb2RlIFN0eWxlIl19XQ==

static final String LINUX_WASCHMITTEL = "Linux Waschmittel"

This is only an example... keep an eye on all your reports... codacy, codecov, whatever will be added in the future and fix all items as soon as possible. This prevents cumulation of a huge load of technical debt.

Readme hint not working

The Heroku URL answers with a "Whitelabel Error Page" instead of a welcome page of your server.

Delete All Entries

Add function delete all entries - maybe with some additional security features

Surefire plugin should not execute integration tests

<include>**/*IT.java</include>

No this is not correct, integration tests should be executed by the maven-failsafe-plugin.
Refer also to its documentation https://maven.apache.org/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html
General mantra: fast running (unit) tests are covered by surefire, long running (integration) tests by failsafe. Please switch this line to the failsafe plugin config.

Understand the client access to reactive endpoints

Study the following article: https://www.callicoder.com/reactive-rest-apis-spring-webflux-reactive-mongo/

…and answer the following questions:

Question 1: What are Server Sent Events?

Question 2: Try the following curl requests and answer: What is the fundamental difference between the following to requests to your Rememberbrall server:

Question 3: Why is the second curl request above not appropriate for clients which rely on well-formed JSON data?

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.