DEV Community

MD ARIFUL HAQUE
MD ARIFUL HAQUE

Posted on

FriendForge AI — Build for a Friend

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built FriendForge AI, a private personal AI companion for a friend who wants to improve their English, organize daily tasks, and practice conversations without sending personal notes or practice data to a third-party AI service.

FriendForge brings together goals, tasks, private notes, vocabulary practice, AI chat, and AI-generated study plans in one small web app. The AI can, for example, act as an English conversation or interview practice partner and help create a study plan based on the friend's goals.

Demo

The app runs locally at http://localhost:8080 when started with Docker Compose. The local demo has been opened in a browser, and a test prompt received a response from the local model.

See the animated SVG project overview for a quick visual introduction. It illustrates the actual dashboard sections, AI chat, and local Ollama model flow; it is not a recording of the live app.

Watch the actual browser walkthrough, including a real response from the local model: friendforge-demo.webm (view it in the GitHub repository).

To run it:

  1. Install Docker Desktop and clone the repository.
  2. Copy .env.example to .env.
  3. Run docker compose up -d --build.
  4. Download the default model with docker compose exec ollama ollama pull qwen2.5:3b.
  5. Open http://localhost:8080.

The app URL is local development only; use the linked video as the public demo.

Code

The source code is available at github.com/mah-shamim/friend-forge. The project is licensed under the MIT License.

How I Built It

FriendForge is a PHP 5.6 web application packaged with Docker Compose. MySQL stores the app's data, and a separate Ollama container runs the open-weight qwen2.5:3b model. The PHP app calls Ollama over the private Docker network; it does not need a hosted AI API.

flowchart LR
    Friend[Friend's browser] -->|Web app| PHP[PHP 5.6 / Apache]
    PHP -->|App data| DB[(MySQL 5.7)]
    PHP -->|Prompt and response| Ollama[Ollama]
    Ollama --> Model[qwen2.5:3b]

The model, Ollama endpoint, and database connection are configurable through environment variables. See the project setup guide for the complete stack and startup instructions.

Why Does Open Innovation Matter?

The open-weight model and locally runnable Ollama server make the core AI feature possible without sending prompts to a hosted AI provider. The friend can keep the app, model, and data on a computer they control. After the model has been downloaded, inference can run locally without a hosted AI API; running the whole setup with the computer disconnected from the internet has not yet been independently tested.

Using an open model also keeps the model choice flexible: the configured model or Ollama-compatible endpoint can be changed without redesigning the PHP application. The project is MIT-licensed, so the code can be inspected and adapted.

My Agent Session

No shareable agent session link is included yet.

Prize Categories

No partner prize category has been confirmed. Add the applicable categories here if entering any, or remove this section.

Top comments (0)