A starter project for the Core program final project:
https://hub.hackyourfuture.nl/core-program-week-14
This project is a simple library management system built with:
- Node.js
- Express
- Better-SQLite3
- HTML/CSS/JavaScript frontend
The application allows users to:
- browse the library catalog
- register and log in as a library member
- borrow books
- return books
- view active loans
- import books from Open Library API
- generate a short AI teaser for a book
The website displays the list of books stored in the SQLite database.
Users can create an account and log in using their email address.
A logged-in member can borrow an available book and return it later.
Books can be searched and imported from Open Library into the local database.
The system can generate a short teaser/insight for a selected book using an LLM.
c55-core-project-group-5/
│
├── data/
│ ├── book_library.db
│ ├── books_library.sql
│ └── db.js
│
├── public/
│ └── index.html
│
├── src/
│ ├── index.js
│ ├── apilibrary.js
│ ├── llm_helper.js
│ └── routes/
│ ├── books.js
│ ├── members.js
│ └── loans.js
│
├── tests/
│ └── apilibrary.test.js
│
├── package.json
└── README.md
- Clone the repository git clone cd c55-core-project-group-5
- Run
npm installto install dependencies - Configure environment variables Create a .env file in the project root: OPENAI_API_KEY=your_openai_api_key_here
- Run
npm startto run the application The app should run at: http://localhost:3000
- Run
npm run lintto check for linting errors - Run
npm run formatto format the code with Prettier
Run npm test to run the tests
The project uses SQLite.
Main database file:
data/book_library.db
Main tables used in the project:
authors
books
members
loans
The database connection is handled in:
data/db.js
The project uses Open Library to search for book metadata before importing a book into the local database.
Imported fields typically include:
title
author
publication year
ISBN
Group 5
Halyna, Mustafa, Bader, Baraah