A web-based application that transforms reading into an interactive adventure, integrating OpenAI for personalized recommendations and Google Books API for extensive library access.
- IPustaka: Gamified Reading Platform
- Role: ReactJS
- Description: Powers the interactive user interface with dynamic components for book exploration, achievement tracking, and gamified challenges.
- How It Works:
- Responsive pages: Book Discovery, Reading Challenges, User Profile.
- State management for real-time progress tracking.
- Tailwind CSS integration for consistent styling.
- Role: Backend Server
- Description: Handles business logic, API integrations, and data processing between frontend and database.
- How It Works:
- Routes for user authentication and book data management.
- Middleware for API key validation (Google Books/OpenAI).
- Error handling and logging
- Role: Database ORM
- Description: Manages PostgreSQL operations with JavaScript syntax.
- How It Works:
- Models for Users, Books, Achievements.
- Associations (e.g., User.hasMany(Books)).
- Transaction handling for progress updates.
- Role: Book Data Provider
- Description: Accesses millions of book records for the platform's library.
- How It Works:
- Fetch book metadata by ISBN/title.
- Display previews and availability.
- Rate-limited requests
- Role: Recommendation Engine
- Description: Generates personalized reading suggestions.
- How It Works:
- Analyzes user reading history.
- Produces AI-curated book lists.
- Implements prompt engineering
- Role: Primary Database
- Description: Stores all persistent data including user profiles, books, and selected books in a relational structure.
- How It Works:
- Tables for Users abd Books with proper relationships.
- NodeJs
- ReactJs
- ExpressJs
- PostgreSQL
- Git
- Clone the github repository
git clone https://github.com/arvinaufal/ipustaka
- Move to the project folder
cd ipustaka
-
Move to the Backend Project
cd server -
Install the required packages
npm i
-
Setup Database Config and Run Migration
npx sequelize-cli db:migrate
-
Add a
.envfile, and fill the following keys below:NODE_ENV= GOOGLE_BOOKS_API_KEY= G_CLIENT= G_SECRET= SECRET_KEY= APP_PASSWORD_GMAIL= APP_USER_GMAIL= APP_USER_GMAIL_LOGIN_CREDENTIAL= -
Run the development server
npm run dev
-
Move to the frontend Project
cd client -
Install the required packages
npm i
-
Run the development server
npx run dev
If you have any questions or encounter any problems during the installation, please do not hesitate to contact me on Gmail: arvinaufalagustian@gmail.com