Coder Social home page Coder Social logo

codingwithtashi / booki Goto Github PK

View Code? Open in Web Editor NEW

This project forked from houssem-selmi/booki

0.0 0.0 0.0 3.56 MB

Booki Project ๐Ÿ“– Fully working Angular 7 - Java EE Spring Boot Application โค๏ธ

License: MIT License

Java 23.16% JavaScript 0.64% TypeScript 36.52% HTML 21.96% CSS 3.68% TSQL 14.03%

booki's Introduction

Booki Project ๐Ÿ“–

Fully working Angular 7 - Java EE Spring Boot Application โค๏ธ

Project with Angular 7 + Angular Cli + Spring Boot + Spring Security + Spring Data ..

Well designed, responsive and many reusable components ๐ŸŽจ

Table of content

About the project

Booki is an application that allows the management and tracking of user books reading list, published to provide a fully working web application for developers who are interested in building modern web apps using Spring Boot as a backend solution, and Angular 7 for the frontend.

Feautures

Front-End

  • Reusable Independent components
    • User profile card

* **Book review Component**

and much more to discover ...
  • Responsive components

  • Implementing pagination

  • Angular Guards implementation

    Manage routes access according to the connected user ( JWT token decode ).

  • Implementing Angular interceptor to send the jwt token on every API call from the backend ( with Spring Security JWT Implementation )

  • Using Angular Environment variables to get the URL of the Backend - API ( Dev / Prod )

  • On typing books filters using Angular Pipes

Back-End

  • Clear implementation of Spring Security - JWT - for securing the REST API

  • Using JpaRepository to generate Entities CRUD ( Spring Data )

  • Using profiles

    • The project contains two profiles, one for Mysql, the other for Postgres, you just have to properly configure

      • spring.datasource.url
      • spring.datasource.username
      • spring.datasource.password

      in the application.properties file corresponding to the database that you are going to use, then you need to specify the profile you want when running the project.

  • Manage uploading files to the server


Getting Started

Prerequisites

  • Front-End ( Angular )

    • A stable version of node installed on your machine
    • Npm
      • npm install npm@latest -g
    • Angular CLI
      • npm install -g @angular/cli
  • Back-End ( Spring Boot )

    • Java SDK v1.8 or higher
    • Apache Maven 3.3 or above
    • Databases : Booki application was developed to support two databases ( Postgres && Mysql ), so you should have at least one of those databases running correctly on your machine.

Installation

Clone the repo ๐Ÿ˜Š

git clone https://github.com/Houssem-Selmi/booki.git

Front-End ( Angular )

Access the Front-End folder

cd Booki-Front-end 

Install dependencies

npm install

Start the angular project

ng serve 

Verify the file 'src/environments/environment.ts '

apiBaseUrl should match your backend URL and the port you are running the spring boot app on, it should be 8080 in the default case.

Back-End ( Spring Boot )

Setting up the databases

you can choose to work with MySQL or Postgres, there is a profile for both databases

  • Create a database with the name of ' bookidb '

  • Import the dump provided in the DATABASE_DUMP folder according to the database you will use

    • Postgres
      psql -U your_postgres_username bookidb < postgres_booki.sql
    • Mysql
      mysql -u your_mysql_username -p bookidb < booki_mysql.sql
  • Check if the data is added successfully to bookidb โœ”๏ธ


<img src="https://lh3.googleusercontent.com/lZv8mMAUT9MtYtBCI-I-UvpmfDV99MJSEmQyvA7X6Wg0C0b3G9lH4F0iLIdHuU3OzEYtQ-c4nDQXsgPXvgu-iEN9_8U7To7YJoV_aDTjM30G3J0U4UuOF1yv4PjDlaI5vJ0Gmw2pnl2uT0RxFNmpTX-U2YYGkogxLDsz33_BLxdK4O40e0Dld9PuLxwKamCkjkR5iI7i9-LiLoa96hczMOwwlJ0YyY3ADld-KSq1AP2dED_u8wFTHbWNRaj6CcinuAkekDxUi1t2TZ6sHkuVNTjnWeAYIjDZtyJeyIIo367U9-gYKkg2aQAnmstYRzWs8G6tpObFf7bvMFZSwMwxhER_VYCNan9Huxp0DHyYQFe_bdRDKf7qcEEL0vuC4n-5wcDc2jOgm5TQ0WxIxmBbBC4pTX0SwRewTaqgcEse8GNZcCOH6NUev8MBolEmSXFNCnloFKkmrryXfsyqxqJ7HAsV31bd3kcy2thUyW37bqsPL0jXZJGRpz167quSUkZkIJGHtwSImgQ6sZ-6I7C4y6GtJEbqId0o_sBW7TAzbOc6S9PMHADZoE2Zw-U0_BCM7e8T5GzdjTlT-6auxTxC7kCbW3oVW6bJPmnNXyHVaCB8nPKgoZQQE4UsLrm4n3R2uhVGQ-7jmtNQa9IH93B607lQGjyOqReQXbx3oA4GY-FBfB0QuVOQWk8YVY8Sc_THqH6VQiZyIVj-zBoV3tR1yBl1=w1248-h364-no">	
  • Open the folder Booki-Back-end with your favorite Java IDE ( I used Spring tool suite )

    • You need to set up Lombok in your IDE before running the project, How-To

  • Configure application.properties file ( MySql / Postgres )

       spring.datasource.url
       spring.datasource.username
       spring.datasource.password
    
  • Run the app and specify which profile to use ( Postgres or Mysql )


  • Try to login into the app with the dummy user provided in the database dump :

Congrats ๐Ÿ‘ ๐ŸŽ‰

Now everything is set up correctly and you can start exploring Booki โค๏ธ

Creator

Houssem Selmi โœ๏ธ

License

Code released under the MIT License.

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.