DEV Community

Noah Eyob
Noah Eyob

Posted on

My friends kept getting lost while reading a book, so I built them an app

Hacktoberfest Weekend Challenge: Build for a Friend Submission 🤝

What I Built

My friends usually ask me about a book when they get lost. That's why I decided to build a simple React app for them so that they can ask and get answers about a book they are reading.

Demo

The AI model I'm using is running locally, so it won't be functional when the web app is hosted, but I'll put some screenshots and the GitHub repository down below.

Screenshots

Loading History
Loading History

Selecting a book
Selecting a book

Conversation with AI
Conversation with AI

Code

How I Built It

I used MERN stack even though I'm not good at it (still learning it). I used React to build the frontend, Node.js and Express.js to build the server/backend, and MongoDB was used as the database to store the conversations and selected book title. The book title is fetched from Open Library using its API.

For the AI model, I chose gemma3:1b-it-q4_K_M and integrated it with the Express server I've built using Ollama's API. The model wasn't quite good as I wanted it to be, but I had to use it because I was running out of storage on my computer. The model was smaller in size than the other Gemma models, so I picked it and built around it.

React
 |
 v
Express.js ---> MongoDB
 |
 v
Ollama
 |
 v
Gemma 3 (gemma3:1b-it-q4_K_M)
Enter fullscreen mode Exit fullscreen mode

Why Does Open Innovation Matter?

I used Ollama to run an AI model locally, which gave me more control over the model. I can do whatever I want, whenever I want, with the local model I downloaded without depending on a closed API. I can run and experiment with it as I like.

Prize Categories

Best Use of MongoDB Atlas — All the conversations are stored in a MongoDB database after they are initiated, so they can be retrieved later.

Best Use of Gemma — gemma3:1b-it-q4_K_M is the model answering questions about the books.

Top comments (0)