Giter Site home page Giter Site logo

briene's People

Contributors

jenesius avatar maxitet avatar tomsuworof avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

jenesius

briene's Issues

Transfer modal-container

If you plan to continue using this library to show modal windows I recommend to transfer modal-container from frontend/src/views/ArticleEditor.vue to frontend/src/App.vue.
This container is recommended to be manned only once by the main parent component. It will make your code pretty and more structured.

<!--App.vue-->
<template>
  .
  .
  <modals-container/>
</template>
<script>
  export default {
    components: {
      ModalsContainer: container
    }
  }
</script>

container - will includes all modal that will be opened in any places (Component or just JS/TS files). In this library is not a component just for one modal windows. Container is a wrap for all modal windows.
Thnx for using jenesius-vue-modal

User profile bio

Some info about user displayed on profile page. Should be limited in characters.

Create backend resource model

We need to create UML diagram for our backend model with all relations. It should be 2 files - source file (xml, etc) from which model is compiled, and compiled model (pdf or image).

Support pagination in articles API and in frontend

  1. Backend:
    Simple pagination fuctionality based on limit and offset.
    Add limit and offset params to API and utilize them.
    Return 206 Partial Content in case if not all entities are returned.
  2. Frontend:
    Requests to backend should contain limit and offset params.
    For UI I suggest back and forward buttons for navigation (no digits, total count, etc.).

Generalize exception handling

After migration to Vue frontend need to generalize exceptions and exception handling. Exceptions should be handled in places where it'll make most sense. As much close to cause as it possible.

  1. Check Spring's @ControllerAdvice. It'll help to map exception to response.
  2. Create error message model (class or group of classes). It can contain error message and error code(-s) that will be returned from backend.

Backend code quality impovements

  1. Use constants (enum or interface or class-level, what seems more reasonable in each case). There should be no string literals without declared variables.
  2. Delete flyway.properties from root dir
  3. Add missing flyway-core dependency
  4. We don't store timezone, which will lead to incorrect dates for users. Use OffsetDateTime in backend and timestampz in DB.
  5. Use UUID as id instead of objects hashcode.

Migrate security to JWT tokens

Need to implement JWT token-based authentification and authorization.
Discuss built-in mechanism (in backend) and standalone solution (e.g. keycloak).

Complete migration to Vue

Return functionality from version with Thymeleaf:

  1. Bookmarks
  2. Admin page
  3. Changing personal information
  4. Publishing articles

Article summary support

Summary will be displayed in article list, can be optional feature with switch and should be shown in some block (for not to meld with article title in list view or it's content on article page).
Should be limited in characters.

Backend model improvements

  1. Add validations to model according to DB model (see javax.validation.constraints annotations).
  2. This messages should be propagated to error response including fields that constraints was failed (info will be available in exception).
  3. Remove @column if column name matches field name (it's redundant).
  4. Delete unused methods.
    Can be updated later.

Update readme.md

  1. Add some details about project: it's intention and value (no need for detailed description).
  2. Add tech stack we use at this moment.
  3. Add steps for starting your app ('quickstart guide') - how to build and start it.

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.