Skip to content

a book exchange service webApp, written in Python - Django in backend and Nuxt 3 for frontend

Notifications You must be signed in to change notification settings

AsserElfeki/Instant_Book_exchange

Repository files navigation

Book Exchange web application

🌐 visit the deployed website

🖥 (desktop viewport) check other viewports below

welcome section

This was a Software Engineering University project Developed by a team of 7 using Agile methodologies. it's a portal where book readers can exchange books they already read with new books from other users. It also suggests offerd books in your area. As a registered user, when adding a book, the application automatically suggests titles of the book while you are typing it, and once chosen it fetches from Google Books API information about the book such as Authors and description (if available).


Front-End:

Tech stack & external libraries:

  • Vue.Js 3
  • Nuxt.js 3
  • TailwindCSS
  • Pinia (Store library for vue)
  • vuetify
  • vue-toastification
  • vue3-carousel
  • swiper
  • iso-638-1 (for languages)
  • fontAwesome
  • sass

Integrations:

  • the webApp integrates with Google Books API to automatically search for books in a specified langauge and fetch its info. (e.g: Authors of the book) adding book example

🐙 Responsiveness and compatibility:

The website is fully responsive for all viewports and compatibale with all major browsers, and have been tested on Chrome, Firefox, Opera, Edge.

📱in mobile viewport

scrolling gif in mobile dimension

in tablet viewport

scrolling gif in tablet dimension


Back-End:

Tech stack & external libraries:

  • Python
  • Django/REST
  • PostgresSQL
  • Django - postgrespool 2.0 (used to connect to the database in pooling mood)

deplopyed website:

The backend engine is running on Apache server, and the front-end is running on a node.js server that is proxied by the apache server. 🌐 visit the deployed website on OVHCloud or visit the deployed website on Netlify


How To Use

1-Git

Clone the repository (to clone you have to use githubtoken or ssh connection), if you want to do any work on your local version always do:

git pull

2- Back-End

Python

In terminal move to your cloned directory then:

sudo pipenv install

It will install all needed pip packeges (they are in Pipfile). Next:

sudo pipenv shell

This will put you into virtual environment shell from where you can run commands like:

python manage.py runserver #starts the server
python manage.py makemigrations #makes migrations, run it after changes to your models.py files
python manage.py migrate #run it after makemigrations

Dependencies

  • pipenv
  • python3 at least 3.8
pip3 install pipenv

3- Front-End

  • navigate to Boookz-Nuxt
cd Boookz-Nuxt   
  • Make sure to install the dependencies:
# yarn
yarn install

# npm
npm install

# pnpm
pnpm install --shamefully-hoist

Development Server

Start the development server on http://localhost:3000

npm run dev

Production

Build the application for production:

npm run build

Locally preview production build:

npm run preview