Skip to content

Full Stack application: Spring Boot server side | ReactJS client side

Notifications You must be signed in to change notification settings

TatiSam/TasteIt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

"Taste It" is a Java Spring Boot and ReactJS Full Stack application

Web site: http://tasteit-tatisam.herokuapp.com

Server side description: https://github.com/TatiSam/TasteItAPI

Features:

  • Discover random country with its dishes from the Taste It API on the home page.
  • Discover the list of countries from the Taste It API on the countries page. Click on button Read more and discover a country details like image, article, rating, comments and dishes.
  • Provides the ability to register and login on the Login|Register page.
  • Provides the ability to add country or dish to preferences and view a list of countries and dishes on the my preferences page.
  • Provides the ability to add rating to country by user's IP.
  • Provides the ability to post/edit/delete comments for the country.
  • Stores the JWT token received on the server during Login in local storage for 24 hours.
  • There are two user levels: admin and user. User can post/edit/delete comment to country, add/delete country or dish to his preference list. Admin can add/edit/delete country to website, add/edit/delete country dish.

Architecture and Tech features Client Side

  • Building with React JS
  • React Hooks for using state and other React features without writing a class component
  • React Router Dom v6 for routing in application and for building single-page application that have many pages and components but the page is never refreshed
  • React Redux for reading data from a Redux store, and dispatch actions to the store to update state
  • React Icons
  • Axios for asynchronous HTTP requests to REST API
  • Heroku for storage react app

Architecture and Tech features Server Side

  • Written in Java Spring Boot
  • Spring Data JPA for working with database
  • Spring Security for authentication and access-control
  • BCrypt password encoder for encode password
  • JWT Token for authentication
  • Lombok to avoid writing repetitive Java code and/or boilerplate code
  • Spring Boot Validation to validate Data Access Objects in request
  • ModelMapper for Object mapping
  • Maven for dependency management and building project
  • H2 database for testing mode
  • MySQL database for production mode
  • Design Patterns: Singleton, Builder, Dependency Injection, Three Layer Architecture
  • TDD with integration testing
  • Amazon Web Services for storage database and server side API

Author

Tatiana Samoilenko

tatismoilenko@gmail.com

Israel

TODO

  • Search bar - done
  • Infinite scrolling
  • Admin page

Releases

No releases published

Packages

No packages published

Languages