Bookish Bits is an application built using technologies provided by the .NET framework. The application itself is built using .NET MAUI, and uses a microservice approach to client-server communication architecture.
Bookish Bits aims to provide an online platform around a shared interest of literature. Version 1 includes functionality to search and browse for specific books, authors, and users, as well as interact with these elements by adding books and other literary pulications to a user's personal digital library, connecting with other users via social media, comments, and private messaging, as well as providing a marketplace for others to buy and sell their own physical books.
Some of the most significant technologies used during development this project are:
- C#
- Xaml
- MAUI
- Entity Framework Core
- SQLServer & SSMS
- ASP.NET
- REST
- GRPC
- Swagger
- Hangfire
- SignalR
This repository contains source code that must be built and compiled before it can be executed. No artifacts or executable files are located in this repository.
This project was developed for use with the Windows OS. To get started, clone this repository and then open the repositories' solution in Visual Studio, then:
- Select 'Build' from the main menu.
- Select 'Build Solution' from the drop-down menu. This will download project dependencies and compile the code so that it can be executed.
- Make sure you have the latest version of SQLServer. The free version (Developer Edition) will suffice. Additionally, download SQL Server Management Studio (SSMS) if you wish to preview the databases, or set up the background tasker.
- The SQL Server is set up using these values:
- Server Type: Database Engine
- Server Name: localhost
- Authentication: Windows Authentication
- Select 'Tools' from the main menu, then 'NuGet Package Manager', and finally, select 'Package Manager Console'
- Use Entity Framework Core to create the required databases, together with required tables and dummy data (seeds):
- Navigate to each individual project using the Package Manager Console using the command 'cd <
package file path
>'. If you wish to navigate back to the root of the project, simply type 'cd ..'. - Run the command 'Update-Database' for each of the listed projects:
- UserAccountService
- 'Update-Database -Context UserAccountContext'.
- UserDisplayPictureService
- MessagingService
- LibraryCollectionService
- ReadingGoalService
- CommentService
- MarketplaceService
- UserAccountService
- Navigate to each individual project using the Package Manager Console using the command 'cd <
- To set up the background tasker, first open up SSMS and login using the details stipulated in 3.1. Create a database named 'background_task' and then run the BackgroundTaskService to populate the database with the required tables.
- The SQL Server is set up using these values:
Alternatively, if you wish to do the above through a terminal window then:
- Navigate to the root of the project (where the solution file is located), and enter 'dotnet build Hiof.DotNetCourse.V2023.Group14/Hiof.DotNetCourse.V2023.Group14.sln'
- Install Entity Framework Core by entering 'dotnet tool install --global dotnet-ef'
- To create the required databases, navigate to each project location listed in 3.3.2, and type 'dotnet ef database update'
- For 'UserAccountService', you will need to enter 'dotnet ef database update --context UserAccountContext'
- Right click on the solution and select 'Configure Startup Projects', then select the 'Multiple Startup Projects' radio button.
- Select the dropdown option 'Start Without Debugging' for the following projects:
- APICommunicatorService
- BackgroundTaskService
- CommentService
- LibraryCollectionService
- MarketplaceService
- MessagingService
- ProxyService
- ReadingGoalService
- UserAccountService
- UserDisplayPictureService
- For the 'BookAppMaui' project, either choose 'Start Without Debugging' or 'Start'.
- Select the dropdown option 'Start Without Debugging' for the following projects:
- Select 'Debug' from the main menu, and then select either 'Start Debugging' or 'Start Without Debugging' (depending on what you selected for the 'BookAppMaui' project).
- Select the checkbox marked 'Test Account' to automatically fill in the Username and Password forms with a dummy account used for development and preview purposes.
- Upon clicking log in you should be redirected to the main page. From here you can navigate to all existing pages within the application.
- Tests can be run via Visual Studio by selecting 'Test' from the main menu, and then selecting 'Run All Tests'.
- Alternatively, tests can be run through a terminal window by typing 'dotnet test Hiof.DotNetCourse.V2023.Group14/Hiof.DotNetCourse.V2023.Group14.sln'
Icons used by the GUI are made by Ilham Fitrotul Hayat, Freepik, Pixel Perfect, and Uicons from FlatIcon.