- 01
Local Soul
Team project from the Botnoi internship: an AI travel companion that plans a day hour by hour on a map. I built its chatbot, a RAG endpoint that finds places with vector search and has the Typhoon LLM write recommendations in Thai, connected to Botnoi's chat widget.
- Next.js
- RAG
- Typhoon LLM
- Botnoi
- 02
Thai RAG with Evaluation
Thai question answering over 40 Thai Wikipedia articles, with an evaluation harness that measures it. On 80 questions, Gemini embedding search put the source passage in the top 3 every time, while BM25 over PyThaiNLP word segmentation missed 4. Answers cite their sources and refused all 10 questions the articles could not answer.
- Python
- RAG
- Google Gemini API
- PyThaiNLP
- BM25
- Evaluation
- 03
Thai RAG Agents
Multi-agent question answering over Thai Wikipedia on Google's Agent Development Kit. A coordinator splits a question into one lookup per place, a researcher searches with the hybrid retriever from Thai RAG, and a fact checker verifies the draft. On a 20-question evaluation, 17 answers were judged correct, every expected article was found, and the three unanswerable questions were refused. A second run, after tightening one instruction, kept accuracy at 17 of 20 but made every answer carry its citations (10 of 17 before) and ran the fact checker on every answerable question. The README breaks down the three misses: one bad reference, one real retrieval failure, and one decimal-rounding verdict.
- Python
- Google ADK
- Multi-agent
- Google Gemini API
- Evaluation
- 04
Tournament Hub
Tournament platform I built for the MU Esports club at Mahidol University. Organizers run brackets in five formats (single and double elimination, round robin, Swiss, free-for-all) and Valorant map pick/ban rooms, and anyone can follow results live from a public link with no account. Access rules and bracket logic live in PostgreSQL (Row Level Security and PL/pgSQL functions). It holds the real schedule of the EG faculty's upcoming Valorant and ROV tournaments. 24 merged pull requests and 14 SQL migrations. The demo is the finished archive of the MU Game 2026 (March) inter-faculty Valorant tournament, 13 to 25 March 2026: three round-robin groups, a double-elimination play-off and the map pick/ban records. The source code is private.
- React
- TypeScript
- Supabase
- PostgreSQL
- Realtime
- Tailwind CSS
- 05
- 06
- 07
AI Automation Bot
A serverless bot that monitors tech news 24/7, uses AI to summarize content, and automatically updates the database without human intervention.
- n8n
- Google Gemini
- Google Sheets
- 08
- 09
CD Keys Website
Developed a CD-Key marketplace platform for the 'Web Technologies and Application' class using React, Vite, Node.js, and MySQL. Responsible for the entire Frontend development, designing a responsive user interface with React and Vite. Led the system integration by handling API consumption and data binding to connect the UI with the Node.js backend and MySQL database. Managed state for key features including JWT Authentication and Search functionalities.
- React
- Node.js
- Tailwind CSS
- MySQL
- Express
- 10
R-Data-Science-Labs
A collection of R programming labs from ITDS125 - Introduction to Data Science course. Covers R basics, data visualization, statistical testing, and data manipulation.
- R
- Data Science
- ggplot2
- tidyverse
- 11
Fuwari Time
Gamified Pomodoro & study companion mobile app with a virtual companion, Lo-fi music shop, and weather-synced ambience. Built as ITDS283 Mobile Application Development group project.
- Flutter
- Dart
- Supabase
- Provider
- OpenWeatherMap API
- 12
LINE OA AI Chatbot
Thai-language LINE Official Account chatbot on FastAPI and the Google Gemini API. It rejects requests without a valid LINE signature, reads its system prompt from a file so edits apply without a restart, and is covered by 17 pytest tests, a Docker image and GitHub Actions CI. Deployed on Google Cloud Run.
- Python
- FastAPI
- Google Gemini API
- LINE Bot SDK
- Docker
- Cloud Run