Skip to content

This project is for learning purposes only in Hacktiv8 Indonesia. A web implementation of gamified reading experience using ReactJS and ExpressJS. This is not a commercial product. All book data belongs to Google Books API, and AI services are powered by OpenAI. Created purely for educational purposes in the fullstack JavaScript curriculum.

Notifications You must be signed in to change notification settings

arvinaufal/ipustaka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

IPustaka: Gamified Reading Platform

A web-based application that transforms reading into an interactive adventure, integrating OpenAI for personalized recommendations and Google Books API for extensive library access.

Table of Contents

Technology Used and How It Works

> Technology Stack :

1. ReactJS

  • 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.

2. ExpressJS

  • 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

3. Sequelize

  • 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.

4. Google Books API

  • 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

5. OpenAI Integration

  • Role: Recommendation Engine
  • Description: Generates personalized reading suggestions.
  • How It Works:
    • Analyzes user reading history.
    • Produces AI-curated book lists.
    • Implements prompt engineering

6. PostgreSQL

  • 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.

Installation and Environment Setup

Prerequisites

  • NodeJs
  • ReactJs
  • ExpressJs
  • PostgreSQL
  • Git

Steps

1. Clone the repository:

  • Clone the github repository
    git clone https://github.com/arvinaufal/ipustaka
  • Move to the project folder
    cd ipustaka

2. Set up the backend project:

  • 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 .env file, 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

2. Set up the frontend project:

  • Move to the frontend Project

      cd client
  • Install the required packages

      npm i
  • Run the development server

        npx run dev

Contact

If you have any questions or encounter any problems during the installation, please do not hesitate to contact me on Gmail: arvinaufalagustian@gmail.com

About

This project is for learning purposes only in Hacktiv8 Indonesia. A web implementation of gamified reading experience using ReactJS and ExpressJS. This is not a commercial product. All book data belongs to Google Books API, and AI services are powered by OpenAI. Created purely for educational purposes in the fullstack JavaScript curriculum.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages