Skip to content

The .NET-based project helps users manage their reading process and all their books πŸ“–.

Notifications You must be signed in to change notification settings

thugiang61/BulkyBookWeb2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BulkyBookWeb2

Getting started

An application that helps you manage your bookshelf easier.

Main features:

  • Log in using Google authentication and personalize your books list.
  • Add your favorite books and theirs information (author, type, status,...).
  • You can update these information later on.
  • Filter your books by year.
  • Search your book easily with book's name or book's author.

This project uses following main technologies: .NET, HTML, CSS, JS, Google OAuth, Toastr, Bootstrap, SQL Express.

Project structure

BulkyBookWeb2

β”œβ”€ `BulkyBookWeb2`

β”‚   β”œβ”€β”€ `Controllers` : All APIs implementation and navigation could be found here.

β”‚   β”œβ”€β”€ `Data` : All code related to infrastructure like context configuration.

β”‚   β”œβ”€β”€ `Migrations` : All database migrations could be found here.

β”‚   β”œβ”€β”€ `Models` : All business models and customized enums could be found here.

β”‚   β”œβ”€β”€ `Views` : All views corresponding to each controller and common shared views throughout all pages.

β”‚   β”œβ”€β”€ `Program.cs` : Entry point file that configures the app.

β”œβ”€ `.gitattributes` :  Defines which language to use when syntax highlighting files and diffs.

β”œβ”€ `.gitignore` : All files untracked by git.

└─ `README.md` : Project documentation. Please read it before running the project.

Configure Google authentication

  1. Every users will need a Google account in order to log in and interact with this app. This helps personalize each user's bookshelf.
  2. To enable Google sign in screen for users, you will need a Google OAuth 2.0 Client ID and Client secret configured using Google Console - API & Services.
  3. Follow this step by step instructions to setup a Client ID and secret, then store them in this project using dotnet user-secrets.
  4. As you can see in Program.cs file, these 2 values will be accessed like this:
    if (builder.Environment.IsDevelopment())
        {
            options.ClientId = builder.Configuration["Authentication:Google:ClientId"];
            options.ClientSecret = builder.Configuration["Authentication:Google:ClientSecret"];
        }
  1. Now, whenever a user logs in, a Google consent screen will display.

Project compiltation

  1. Installation of dotnet core 6.0
  2. Open the terminal in the BulkyBookWeb2 directory.
  3. Restore nuget package dotnet restore
  4. Build the project dotnet build

Local Development

  1. Make sure you have installed dotnet core 6.0
  2. Open terminal in the BulkyBookWeb2 directory
  3. Run this command to start the application
dotnet run --project BulkyBookWeb2
  1. Configure: Hot reload on save
  2. Database used: localdb (see in View > SQL Server Object Explorer)