Booki
Booki Project 📖 Fully working Angular 7 - Java EE Spring Boot Application ❤️
Install / Use
/learn @Houssem-Selmi/BookiREADME
Booki Project 📖
Fully working Angular 7 - Java EE Spring Boot Application :heart:
Project with Angular 7 + Angular Cli + Spring Boot + Spring Security + Spring Data ..
Well designed, responsive and many reusable components :art:
Table of content
<ul> <li><a href="#about-the-project">About the project</a></li> <li><a href="#feautures">Feautures </a></li> <li><a href="#getting-started">Getting Started</a></li> <li><a href="#installation">Installation</a></li> <li><a href="#creator">Creator </a></li> </ul>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.
<img src="https://firebasestorage.googleapis.com/v0/b/booki-26bbf.appspot.com/o/a1.gif?alt=media&token=3fd32186-9342-488e-8e08-5006b47f0194">Feautures
Front-End
- Reusable Independent components
- User profile card </br>
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 <br/> <img src="https://lh3.googleusercontent.com/0IlrF5-AozR1UJ1mC83PmKJ3YY1s6HU0vAquhZquVbaa5bCRGjCEVHoQqiOoY2-eDfUTr6yUIYnrNnHreFMavQVMz04nuT-iteV0oXU7Gsg7jnCX3Ln_h8NhkLHoA93_eKsPLBIerehHN4wViEVspGZleg_prpOoBkoReVfNmfacHUDTZaZl805TLaKM_VyeFwpC0yyqmRL-95BdRsdxoFFHEM9paQQ6reIeQdmCa3NgecSFpizlmPJ44rux1sP4FN2WJm2AKADL8CKdSmv4srBKIh6CfauYRkqup2MQtV7fI0AvBu_aEOVPY_2ncPAJ7CILhQrg7XkY5kti9Q6h1LWWv_4Jug1HzJvelgZwuaw2y6hV2Ij9_7cClrUZ3ku1QtVzwTjYX0B4b_v_95W28Z3fzE_MMDnEEeX2esCpxd_Ue8xYrkRKy2eSj0O2NMz0Xo61I3404G3dd4fjC4CyXGKxdjxSgmobF-WcPilveSFbdryUoN2taa-nFhkuaTQNcAaJt7kWUQKkthmhW1TJNC-EuOWU26NbS6bGcUYV4gwCqRoXDn8bXMVYKyoXQ5ZxgYRSpuGrUeoMLlStszVgmDixCXzYD0s7OBQxfkYa1MDS5lWRDGt68xdmWOH_su5ux6UlYgCWD41D1fV_6UDgLRzXmdE2Pkyt0qSUzEqubhwoowGuN0nJOEpYxTF3e0N21A4dantQgNhEymXViQE9TEUs=w1333-h695-no">
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
<br/>
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 :blush:
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 '
<img src="https://lh3.googleusercontent.com/z2M6KTngB0ujAXJCnvOrw01S5QzlRnmMTcktAtv43tE-OwFR9eU80yjDOm10xcJdxaDz0zY9wtzVMDvKxTKS4NGFTfccTMopHcx3dCWnrrDwilee8emURkCRYN-qv3yJPgn0v8Q1q5a4G_COdT987Xq_8F20mm52Zx7i_kdopK5n3KrJmAJxKzhuD3zfY5uBScgP20RD8U3DnCQRJ2kHTx8M675ZIdwbzBRqL1x2HRc-wGvMth4pon6SNP7bbjwd4Gmqi5TEsdz62helvqgdprHbhf_z-TW027BfshfETVqM1aBI7Qgqvh8jJUeoQDdBagXiiwBm84iNro8_7gl1cSR7BW8QvwHB_a_prk6s63T90c1tP2X5A9YsQlCLrFQRxZWTJph9I1keTiUfKSLKrYgynb43uPqHyPHWoMLRNaOpsmh5kGTm0ffzoajkyG4wEd6w4EiE0p8KwIqTjmsGLdDagQIeZVhub6oqkOW8VnrS7o29vyhivwY-ZX-zMmoZt_p_tKZDMZX8KPhvEYjMIprUa0XLfZbySEd48S9lUgHPZp16PxjjhAHWReoxP8YjEsC1iem9fFpYGIdrjLbrtJ7DEM7G9jy2KqxwLUdKGAVMxpELw-4f7PUWOsiOBuYu5bNd_o7cE7rbsqWo9HawkMwSr2_4RiLaweHI0S7iT1aScYCSZrtXTpQOaoGwF-30-cKuvSX_JF5lGdqFFpbRor1p=w1150-h646-no">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
- Postgres
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
