Senior Project 2025

Deployment and Implementation
of Reader’s Tools

Transforming the Christian Classics Ethereal Library into a living conversation.

Directed by Professor Harry Plantinga

Project Vision

Our vision starts with a simple problem: reading dense, 400-year-old theological texts is difficult, and it can be a very solitary experience. The CCEL website is an amazing resource, but it's currently a static collection of texts. Our vision is simple: 'no one should have to feel lost or alone when reading a great book'.

We want to transform CCEL into a living conversation. Our project does this by integrating two distinct AI-powered systems. This creates a twofold technical challenge. First, for the contextual 'Reader's Tools'—the 'modernize' and 'explain' buttons—we have to port (or translate) its existing Python code directly into the website's native PHP. Second, for the 'Smart Library Assistant'—which runs the 'Ask CCEL a question' chatbot—we are building an API bridge to connect the PHP site to its separate Python service.

By strictly integrating these features into the native CCEL environment, we aim to make profound theological study accessible to everyone, regardless of their academic background, creating a true "co-pilot" for digital reading.

Meet the Team

Department of Computer Science, Calvin University

SC

Sungmin Choi

Chatbot Lead

Lead developer for the "Ask CCEL" Chatbot and API integration. Also working collaboratively on the implementation of the Contextual Menu system.

YK

Youngha Kweon

UI/UX & Frontend Lead

Lead on UI/UX design and aesthetics. Spearheading the frontend implementation of the Contextual Menu and Reader's Tools interfaces.

Mid-Semester Status Report

Milestone 3 Updated

Normative and Ethical Considerations

Transparency & Data Privacy

We provide clear visual indicators that chat data is processed by a third party (SLA) and ensure all AI content is labeled with source citations to prevent hallucinations.

Cultural Appropriateness

The AI acts as an inquisitive guide, not an expert, enhancing the studious atmosphere rather than disrupting it with flashy features.

Stewardship

We balance features with costs by using efficient models and lazy loading for the chatbot to minimize expensive API calls.

Trust

Prioritizing thorough testing and feedback mechanisms to maintain user trust in the platform's reliability.


What We Did: Accomplishments to Date

We have successfully moved beyond planning into concrete implementation, integrating a dual-component system into the CCEL Laravel architecture.

1. Initial UI/UX Integration

We implemented a persistent floating chatbot icon and a contextual popup menu that appears when users highlight text. These serve as entry points for the "Ask CCEL" and "Reader's Tools" features.

2. API Endpoint Discovery & Integration

We reverse-engineered the existing SLA (Smart Library Assistant) API endpoints to enable session creation (/api/query-agent-sessions) and message sending (/api/query-agent) directly from our PHP frontend via JavaScript, handling secure CORS communication.

3. Visual System Implementation

We created a comprehensive styling system using gradient buttons (linear-gradient(135deg, #667eea 0%, #764ba2 100%)) and proper Markdown rendering for AI responses to match CCEL branding.


Development Process & Timeline

The Technical Pivot: We split our approach: Porting the "Reader's Tools" backend directly to PHP for speed, while using an API Bridge for the conversational chatbot.

  • Nov 1: Frontend components implemented (Completed).
  • Dec 10: At least one system (Chatbot or Reader Tools) fully stable on the website.
  • Mar 1: Full implementation complete; decision on "Possible" goals (Discussion Forum).

Dev Environment: Fully set up with PHP, Python, and React dependencies on university servers.

Team Contract: Established norms for Slack communication, pair-programming (Tuesdays), and Git workflow.


Product Success Criteria

  • Minimum: Fully functional "Ask CCEL" chatbot via API, and "Modernize/Explain" buttons fully ported to native PHP.
  • Possible: AI-driven book discussion prompts to foster community interaction.
  • Stretch: AI-generated cross-reference maps connecting concepts across library books.

Status Report Presentation (5-Minute)

SLIDE 1

Title

Project: Deployment and Implementation of Reader's Tools
Team: Sungmin Choi & Youngha Kweon
Context: Senior Project Mid-Semester Status Report

SLIDE 2

The Vision

"No one should have to feel lost or alone when reading a great book."

Twofold Challenge:
1. Reader's Tools: Porting Python code to native PHP.
2. Chatbot: Building an API bridge.

SLIDE 3

Accomplishments

  • Established shared dev environment & Team Contract.
  • Implemented Floating Chatbot Icon (API entry point).
  • Implemented Contextual Menu (Reader's Tools entry point).
SLIDE 4

Design Norms

  • Aesthetics: Visual integration to build trust.
  • Transparency: Clear labeling & citations to mitigate hallucinations.
  • Stewardship: Balancing features with API costs.
SLIDE 5

Live Demo

Demonstration of the live development site, showcasing the floating icon and text-selection menu.

SLIDE 6

Next Steps

  • Goal 1: Port "Reader's Tools" backend to PHP.
  • Goal 2: Finalize Chatbot API Bridge.
  • Target: One system fully stable by Dec 10th.

Full Presentation Slides

Download PDF

Project Codebase

Our project integrates modern AI microservices into a legacy PHP/Laravel architecture.

Laravel/PHP

Core Website Logic & Backend Porting

JavaScript ES6

API Bridge, AJAX & Dynamic UI

Python

Existing AI Logic & API Endpoints

View Repository on GitHub