Giter Club home page Giter Club logo

bbcv's People

Contributors

danutchindris avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

bbcv's Issues

Write Unit Tests for All Service Methods

Check all service methods and write unit tests where appropriate.
For some of the service methods there already are a few unit tests (e.g. the methods in UserService).

Configurable External Location for Static Resources

Implement a mechanism for serving static resources stored at an external location in the filesystem. The actual location for the static resources should be configurable in the application.yml file.
Spring Boot will allow us to configure the articles.images property from outside the deployed application.

Manage Properly Session Expiration

When the session expires the CSRF token is invalidated.
The user, who believes they are still logged in tries to save an article but the server returns a 403. However there is no error message displayed in the page. The attached screen shot shows the errors visible with FireBug.
failed-save-action
Handle properly session expiration, implementing a mechanism that checks the validity of the authentication token and redirects the user to the login page when needed.

Add Destinations Page

Add Destinations Page which displays a list of destinations based on available tags.

Implement Mechanism for Saving an Article

Implement the mechanism for saving an article in the back office.
The actual content of the article is written in Markdown and there needs to be an editor that allows you to input Markdown code and preview the results on the fly.
We will use EpicEditor for that: EpicEditor
We need to decide how to store the article's title and content (possibly other types of content like pictures as well). Please consider the implications regarding the need to store the article's translations in several languages (both title and content).

Implement Messages Management Page

Please implement the back office page for managing messages coming from users who filled in the form in the Contact Us page.
As with other objects which are managed in back office, the messaged should be displayed in a table. Each row will have a few actions available.
The message contains the following fields: name, email, phone, message. These are displayed in the Contact Us form. Only email and message should be mandatory in the form.
There should be a mechanism for ensuring no message is overlooked. Therefore we need something like a flag indicating the message was read and processed.

Extend Image Handling

The images are currently related only to articles.
We need to extend the mechanism to be able to store images for other objects, such as tags.

Implement New Login Page

The current login page works but it should be improved to match the look & feel of the overall application.
Design and implement a solution that uses the creative-tim provided templates and components.

Refactoring: Use the Java 8 Optional Type

As we updated our project to use Java 8 we can take advantage of the platform's latest features.
Refactor the code to use the Java 8 Optional type where appropriate.

Refactor Administration Module

Refactor the implementation for the Administration module so that it's easier to understand and extend. Split the Spring controllers into logical units.

Implement status mechanism for articles

Implement status mechanism for articles.
Only published articles should be displayed.
Articles are not deleted, but marked as deleted using the appropriate status.

Implement Mechanism for Storing and Retrieving Images for Articles

At the moment articles can only contain text stored in MarkDown format.
Design and implement a mechanism for storing images properly on the server.
The images will have translated title and alternative stored in the dictionary.
Also, they will be referenced properly in the MarkDown text.

Add Motto to User

Add new column to the USER table and manage it in the user administration page.
Also retrieve it with the other properties where needed.

Implement Exception Handling

There was an effort to implement this functionality however it is not yet complete.
Please see the implementation in GlobalExceptionHandler (which is annotated with @ControllerAdvice). If there is something else that needs to be done please implement that.
Also, implement customized error pages according to various scenarios such as 404 HTTP response code, access denied, authorization error.

Implement "Profile" Page

Implement a page that displays the profile of the logged in user.
It will be accessible through a link in the "Account" drop down on the header.
Please propose what information this page should contain.
From a technical perspective you need to implement unit tests, integration tests, the controller, template, service methods and data access methods.

Manage Tables Pagination

Currently we retrieve the whole data set for displaying the rows of a table. The Bootstrap table is able to display pages of data so we should use this feature and only retrieve the relevant subset for a particular page.
This implies sending the offset, limit and related information. Changes go as far as data access layer.

Implement Registration Page

Implement the registration page that uses the creative-tim templates and components. The page should match the overall look & feel of the application.

Make the "monolith" Branch Stable and Merge to "master"

The "monolith" branch represents the effort to refactor the original service oriented approach into a classic monolith. This decision came after realizing for our use cases there is no need for such architecture. Furthermore, the service oriented approach introduced more complexity in development and deployment and multiple vulnerabilities. For further reading see Bozho's Tech Blog.

Fix Character Encoding Problems

When saving words containing umlauts in the database, they aren't stored properly.
Investigate and fix this problem.
Reproduce by saving or editing an article using Romanian.

Implement the Action for Deleting an Article

The articles shouldn't be actually deleted but marked as deleted. Therefore a flag is needed in the ARTICLE table. This flag should be checked before displaying the article or any other action against it.

Design and Implement a Mechanism for Managing Labels

It would be nice to be able to assign labels to articles.
Please design a solution and implement the mechanism for that: database tables, data access layer, service layer, controller and template for back office management.

Add Support for the Spanish Language

Implement the necessary database scripts to support the Spanish language.
Also perform the front end changes to display the Spain flag in the available languages list.

Create Database Script

Create an SQL script and store it in a proper place in the repository.
The script should create the database for fast and easy setup of the development environment.
It will be maintained by every contributor who makes changes to the schema.

Replace "lang" Parameter with Cookie

Use Spring's CookieLocaleResolver instead of the "lang" request parameter.
Nibbler reports pages using this parameter as duplicates, therefore not a good practice.
We could use the suggestions described here: Codingpedia
Make the necessary changes in the WebConfig class, considering the localeResolver() and localeChangeInterceptor() methods.

Implement Article Display Page

Create the controller, service methods and template for displaying an article.
This should be generic so that all the articles will be displayed through this controller and the URLs are predictable enough.
Implementation suggestions: Codingpedia

Update Header

The header is too large. That becomes a problem especially on mobile devices because it takes too much of the screen's height.
Investigate how can we make it narrower or replace it with a better alternative.

Implement Mechanism for Saving a Message

Implement the controller, service methods, data access methods and everything front end related for saving user messages coming from the Contact Us form.
Please don't forget unit tests.

Display List with Latest Articles

In the home page we need to display a list with the latest articles.
Decide what the layout of the list should look like and how many of them should be displayed.
Decide how to allow the user to see older articles at the bottom of this list.
Implement the basic functionality for the MVP.

Externalize Configuration Properties

Some configuration properties (such as logs location or DB related properties) are currently stored under the web app. These should be placed in a place external to the actual deployment package.
Move these properties in files under Tomcat's lib folder or find a better alternative.

Manage Tables Sorting

We need a mechanism that deals with retrieving the tables rows in a sorted manner. This goes hand in hand with pagination, which is described in #22.

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.