Web site: http://tasteit-tatisam.herokuapp.com
Server side description: https://github.com/TatiSam/TasteItAPI
- 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.
- 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
- 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
Tatiana Samoilenko
Israel
- Search bar - done
- Infinite scrolling
- Admin page