Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Contributing to Readr

This is a guide on setting up and contributing to the project.

## Getting started

Install [Node.js](https://nodejs.org/en/download) and verify you have `npm` installed as well.

Install [pnpm](https://pnpm.io/) if you haven't already.

The easiest way to install pnpm is to use npm:

```sh
npx get-pnpm
```

To learn about other ways to install pnpm, see the [pnpm installation instructions](https://pnpm.io/installation).

Next, install dependencies:

```sh
pnpm i # or: pnpm install
```

Run the application:

```sh
pnpm dev # or: pnpm run dev
```

In order to prepare a production-ready version of the app, run:

```sh
pnpm build # or: pnpm run build
```
39 changes: 10 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,21 @@
# IT2810 Gruppe 37: Readr (Prosjekt 2)

Repository for team IT2810-H26-T37 in IT2810-H26.

Visit our project here: [Readr](http://it2810-37.idi.ntnu.no/project2/)

## Getting started

Install [Node.js](https://nodejs.org/en/download) and verify you have `npm` installed as well.

Install [pnpm](https://pnpm.io/) if you haven't already.

The easiest way to install pnpm is to use npm:

```sh
npx get-pnpm
```
## Specification for first delivery

To learn about other ways to install pnpm, see the [pnpm installation instructions](https://pnpm.io/installation).
The specification for the first delivery is in [specifications.md](docs/specifications.md).

Next, install dependencies:
---

```sh
pnpm i # or: pnpm install
```
Repository for team IT2810-H26-T37 in IT2810-H26.

Run the application:
Visit our project here: [Readr](http://it2810-37.idi.ntnu.no/project2/)

```sh
pnpm dev # or: pnpm run dev
```
> [!NOTE]
> The project is not deployed yet.
In order to prepare a production-ready version of the app, run:
## Contributing and getting started

```sh
pnpm build # or: pnpm run build
```
In order to get started with the project, check the [Contributing guidelines](./CONTRIBUTING.md).

## Testing

Expand Down Expand Up @@ -142,7 +123,7 @@ Furthermore, it ensures that we write clean and maintainable code that follows a

## Project choices and reasoning

TBA
This section will be expanded upon after the project has been developed more and choices have been made on the way.

## Use of AI in this project

Expand Down
Binary file added docs/images/book-grid.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/sketches.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions docs/specifications.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Specification

## Data

- **Source:** Books from an open-source books dataset, possibly one from [Kaggle](https://kaggle.com).
We will import a selection of books into our own database, so that search,
filtering and sorting happens on our server. Cover images are still loaded
from the internet, because storing them would quickly fill the 10 GB of
storage on our VM. We only store each book's cover link or ID.
- **Fields per book:** title, authors, first publish year, subjects, language,
cover ID, average rating, description and possibly more if the dataset includes it.

## Design

![Search page](./images/book-grid.png)
![Sketches of homepage and login](./images/sketches.png)

- The search page with the grid works well, so we only plan to polish it.
- The book details page will be redesigned. Reviews will be shown and written
there.
- We will add a separate page that lists the user's favorite books.

## User interaction

- **Search** on title and author. The search is case-insensitive and debounced,
so we don't send a request on every keystroke.
- **Filter** on author, subject, place, person, publisher, language.
- **Sort** by rating.
- **Pagination** through the results, a **details page** for each book, and
previous/next buttons to browse between books.
- **User-generated data**, stored in our database:
- **Favorites**, shown on their own page.
- **Reviews** with a star rating and an optional text.
- **Login:** if time allows, we will add Google login.