Skip to content

Al Book-Store is a full-stack web application where customers buy books

Notifications You must be signed in to change notification settings

AhmedLotfy02/Book-Store-1

Repository files navigation

Al-Book-Store

Al-Book-Store-logos-transparent

Table Of Contents

Important Note

This is My First Project using these technologies so it can't be the most optimized one and the files aren't organized in such perfect way ,we are still learning so wish me best of luck ^ ^.

About

Al-Book-Store is full-stack web-application using Angularjs,Node.js,Express.js,MongoDB

Build with

Getting Started

This is an list of needed instructions to set up your project locally, to get a local copy up and running follow these instructuins.

Installation

  1. Clone the repository
    $ git clone https://github.com/AhmedLotfy02/Book-Store-1.git
  2. Navigate to repository directory
    $ cd Book-Store-1
  3. Install dependencies
    $ npm install

Running

  1. Compiles and Development
    Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
    Run `nodemon server.js` for a dev server. Navigate to `http://localhost:3000/`. The app will automatically reload if you change any of the source files.
  2. To Build
    Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
  3. Running unit tests
    Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

File Structure

AL Book-Store
├── README.md
├── angular.json
├── server.js
├── LICENSE
├── package-lock.json
├── package.json
├── .gitignore
├── .browserslistrc
├── tsconfig.app.json
├── tsconfig.json  
├── .tsconfig.spec.json
├── middleware
│   ├── auth-check.js
├── backend
│   ├── images
├── src
│   ├── environments
│   ├── assets
│   ├── app
|   |   ├── adminControl
|   |   |   ├── create
|   |   |   ├── delete
|   |   |   ├── update
|   |   |   ├── options
|   |   |   ├── header
|   |   ├── auth	
|   |   |   ├── auth.guard.ts
|   |   |   ├── auth.service.ts
|   |   |   ├── auth.data-model.ts
|   |   |   ├── auth-interceptor.ts
|   |   ├── checkout	
|   |   ├── dashboard	
|   |   ├── favorite-list	
|   |   ├── footer	
|   |   ├── forget-page	
|   |   ├── loading-screen	
|   |   ├── login-page	
|   |   ├── main-store
|   |   ├── profile	
|   |   ├── search-result	
|   |   ├── search-tool-bar
|   |   ├── sign-up
|   |   ├── sign-up-successfully
|   |   ├── snack-bars	
|   |   ├── app.component.css	
|   |   ├── app.component.html	
|   |   ├── app.component.spec.ts	
|   |   ├── app.component.ts	
|   |   ├── app.module.ts	
|   |   ├── app-routing.module.ts	
|   |   ├── Book-Model.ts
|   |   ├── overall.service.spec.ts
|   |   ├── overall.service.ts
|   |   ├── signUp-data-model.ts
│   ├── main.ts
|   ├── polyfills.ts
│   └── test.ts
│   └── styles.css
|   |── favicon.ico	
|   |── index.html	
└── node_modules	
  

ScreenShots



  1. Login Page
    • Validations
      • Username and password must be entered
      • Username and password must be existed by signing up or admin added them before
    • Forget your username sending you email to your email contains username you signed up with it

    Login Page
    Login Page
    Login Page
    Login Page
  2. Forget Username Page
    • Validations:
      • Entering invalid email or email which isn't signed up before will cause a warn
    • By entering email that is signed up before, you will receive an email contains your username, this is done by NodeMailer

    15
  3. SignUp Page
    • Validations:
      • All validations done using reactive form approach
      • Entering email or username that is already exist will cause error warn as they are unique values in database
    • Password is hashed at backend by bcrypt library and stored in database

    05
    06
  4. Store
    07
    • Book Examples 08
    • Footer 09
    • Nav Bar 26

  5. Profile Page
    10
    • Change password 27

  6. Dashboard Page
    • Calculates the total price
    11
  7. Checkout
    • Using Paypal Sandbox you can pay by paypal or debit card
      • 12
      • 13
  8. Favorites List
    • Contains books you have chosen before to go to favorite list
    • 14
  9. Admin Panel (who ownes the website)
      Admin can create,update,delete books or users
    • interface 16
      • Common interface 17
      • Create Book
        • Reponse message will be displayed either book is created or an error occured
        18
      • Create User
        • Validations: Entering an existing username or email will cause warning
        • Reponse message will be displayed either user is created or an error occured
        19
      • Update User
        • Reponse message will be displayed either user is updated or an error occured
        20
      • Update Book
        • Reponse message will be displayed either book is updated or an error occured
        21
      • Delete Book
        • Reponse message will be displayed either book is deleted or an error occured
        22
      • Delete User
        • Reponse message will be displayed either user is deleted or an error occured
        23
  10. When you are logging in and wants to return to login page or signup this message will appear as you are authenticated 24
  11. Search
    • Book not found message 25

Demo Video

https://youtu.be/sZgJEthHZXk

Contributors

Ahmed Lotfy
Ahmed Lotfy