Code Monkey home page Code Monkey logo

spring-board-demo's People

Contributors

francescojo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

oen142

spring-board-demo's Issues

Make all response status assertion in integration tests more simple

fix response status assertions like:

expectError(reqSpec.then().assertThat().statusCode(is(404))).body
expectResponse(reqSpec.then().assertThat().statusCode(is(200)), Response.class)

to:

expectErrorBody(reqSpec, HttpStatus.NOT_FOUND)
expectResponse(reqSpec, HttpStatus.OK, Response.class)

Tech study

Choose one:

  1. Kotlin/JS + ReactJS
  2. Flutter web

Introduce asciiDoctor to produce API document automatically

  • Solve "org.jruby.exceptions.MainExitException: unknown encoding name x-windows-850" problem
  • Pretty print HTML
  • Link to common object types (i.e. BoardTestBase)
  • Link to basic enum object types
  • Find a way to separate documentation fragments
  • Solve macro rendering problems

Integrate flutter/web project into build phase

  • Create a flutter project
  • Integrate it into module app-main
  • Establish development environment both API and APP
  • Customise Gradle build script to deploy Flutter webApp into module app-main
  • Set-up Flutter unit test environment
  • Let external build script honour main build phase profile: i.e) local and release
  • Final integration

Bump DELETE account

Add spec:

  • rename findCurrentUser to findCurrentAccessibleUser
  • getting deleted account/user's information is not allowed
  • check auth/user access for deleted account

Review all transaction isolation levels

Allow READ_UNCOMMITED for non-important read operations

Consider PESSIMISTIC_LOCK for all modifying operations

  • GetPostController
  • ChangePasswordService
  • DeleteAccountService
  • RefreshAccessTokenService
  • SignInService
  • CloseBoardService
  • CreateBoardService
  • GetBoardService
  • UpdateBoardService
  • CreatePostService
  • DeletePostService
  • GetPostService
  • UpdatePostService
  • CreateReplyService
  • DeleteReplyService
  • GetRepliesService
  • UpdateReplyService
  • CreateUserService
  • GetUserService
  • UpdateUserService

Refactor GetRepliesServiceImpl to eliminate dependency on findLatestByPost

ReplyRepository#findLatestByPost is no longer needed and fetch criteria must be specified by business layer, not repository layer itself.

  • Remove Pageable depending logic in PageableQueryHelperMixin and its usage sites
  • remove ReplyRepository#findLatestByPost call in GetRepliesServiceImpl
  • cope with cases of GetRepliesService.PAGE_LATEST requests
  • refactor PageableQueryHelperMixin#toFirstResultOffset to assume that requested page number is 1-based index
  • refactor page number derivation logic for getting list of posts and replies
  • regression test

Design main page layout

  • Default log-in name
  • Default password (saved locally)
  • Automatic login for certain time amounts

Bump get list of posts in board

We may refactor RepliesFetchCriteria to ContentsFetchCriteria for common usage.

  • Add 'replies count' in PostBriefInfo / PostDetailedInfo
  • Implement PostFetchCriteria to honour 'replies count'
  • refactor PageableResponse to contain page and size information rather than offset
  • Refactor PageableQueryHelperMixin to depend on type ContentFetchCriteria for offset calculation
  • Task #47
  • Get posts list implementation
  • Apply 'replies count' in PostInfoBriefResponse
  • Regression test

Host a demo website

  • Integrate project with Docker
  • Acquire dynip
  • Set-up NUC 4th gen hardware to host a web service

Create a token renewal endpoint

PATCH $BASE_URL/TOKEN
-h "Authentication: Token [......]

{
  "refreshToken": "..."
}

Expected response upon success: same as Authentication response

Apply @AllOpen plugins on JPA Entities

Apply following rules under gradle

allOpen { 
    annotation("javax.persistence.Entity") 
    annotation("javax.persistence.MappedSuperclass")
    annotation("javax.persistence.Embeddable")
}

Model a user authorisation scheme

Role based or matrix based?

Actions Matrix

User

  • CREATE
  • UPDATE
  • GET

Board

  • CREATE
  • UPDATE
  • GET Single / List
  • CLOSE
  • GET Archived
  • GET Closed

Post

  • CREATE
  • UPDATE / Edit
  • UPDATE / Edit other user's
  • GET Single / List
  • DELETE
  • DELETE other user's
  • GET Archived
  • GET Closed

Reply

  • CREATE
  • UPDATE / Edit
  • UPDATE / Edit other user's
  • GET Single / List
  • DELETE
  • DELETE other user's
  • GET Archived
  • GET Closed

Authorisation

  • View activity
  • View other user's activity

Bump @UnicodeCharsLength validation

Since java.validation.Size is not working well for Unicode extended characters, especially for emojis, we have to create an alternative to cope those cases with.

Write README instructions

  • H1 Overview
  • H2 tech stacks & reason (Category/Item/Remarks)

  • H1 Build & run
  • H2 How to build
  • H2 How to run

  • H1 Measuring code quality
  • H2 How to run tests
  • H2 How to produce reports

  • English documentation
  • Spanish
  • Japanese
  • Korean

  • Change README.md under app-main-integrationTest to AsciiDoc format

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.