Skip to content

initialxy/initialxy-points

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

initialxy-points

Node.js CI Playwright Tests

A simple web app that helps track points earned by kids and allows them to redeem points for rewards.

This project was created as a personal Raspberry Pi project to help manage my children's point-based reward system. I wanted to experiment with fully local vibe coding using my Radeon RX 7900 XTX, so I generated as much of the code as possible with local LLMs models while still reviewing every line of code to ensure it meets my expectations.

Important Security Notice: This application is designed for use in a home network environment only. It is not intended for public access or production use and is not secure. Do not deploy this application publicly.

Demo Demo Light Demo Light Demo Light

Project Overview

initialxy-points is designed to help parents track their children's points that they earn through tasks and activities. It features a simple, intuitive interface for both parents and kids to manage rewards and point tracking.

Features

  • Passcode authentication for parents and children
  • Task and reward management
  • Points tracking
  • Admin console for database management

Setup

Make sure to install dependencies:

npm install

Development Server

First, run the admin console to initialize your database:

npm run admin

This will launch an admin console for managing users. Enter a SQLite database file path to get started (e.g., database.sqlite). Run init-db to create database tables.

During development, you can create a .env file with the following variables:

  • NUXT_SESSION_PASSWORD - A secret password for session encryption. When you run the development server for the first time, one will be generated for you.
  • DB_PATH - Path to the SQLite database file that you just created and initialized (e.g., database.sqlite).

Start the development server on http://localhost:3000:

npm run dev

Run tests:

npm run test

Admin Console Commands

The admin console provides these commands:

  • help - Show this help message
  • init-db - Initialize database
  • list - Show all users and their roles
  • add-user <username> <password> [role] - Add a new user
  • delete-user <username> - Delete a user
  • rename-user <oldUsername> <newUsername> - Rename a user
  • change-user-role <username> <role> - Change a user's role
  • set-password <username> <password> - Set a new password for a user
  • show-logs <n> - Show top n log entries
  • exit - Exit the admin console

Deployment

Follow Nuxt Deployment process. Build the application for production:

npm run build

Make sure you set NUXT_SESSION_PASSWORD and DB_PATH environment variables before running the node server. You can generate a new session password with:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

Start the node server:

node .output/server/index.mjs

API Documentation

For detailed information about the available API endpoints, request/response formats, and authentication, see the API Documentation.

AI Tools

As mentioned above, the objective of this project was to experiment with using local LLMs for coding. While the original goal was to generate nearly 100% of the code, it quickly became apparent that this wasn't feasible. Overall, I'd estimate that around 60% of the code was generated by LLMs, though I have manually reviewed every line to ensure it meets my expectations. Here are the tools I used:

  • Roo Code - with code indexing
  • llama.cpp - for serving models
  • ollama - for serving embedding models separately in CPU mode
  • Qdrant - vector database for indexing with Roo Code
  • Devstral (used during early development)
  • Qwen3-Coder (current model)

Here is the script I use to launch these tools:

#!/bin/bash
cd /home/initialxy/ML/llm/llama.cpp/build/bin

session_name="llamacppstart"
command1='docker run -p 6333:6333 qdrant/qdrant'
command2='ollama serve'
# command3='./llama-server -m ~/ML/llm/models/Devstral-Small-2507-IQ4_XS.gguf -ngl 999 -c 131072 -fa -ctk q8_0 -ctv q8_0 --prio 2 --temp 0.15 --repeat-penalty 1.0 --min-p 0.01 --top-k 64 --top-p 0.95 --alias devstral'
command3='./llama-server -m ~/ML/llm/models/Qwen3-Coder-30B-A3B-Instruct-Q4_K_M.gguf --threads -1 -ngl 999 -c 262144 -fa -ctk q8_0 -ctv q8_0 --temp 0.7 --min-p 0.0 --top-p 0.80 --top-k 20 --repeat-penalty 1.05 -ot ".ffn_(up|down)_exps.=CPU" --alias qwen3-coder'
tmux new-session -d -s "$session_name"
tmux split-window -h -t "$session_name":0
tmux split-window -h -t "$session_name":0
tmux send-keys -t "$session_name":0.0 "$command1" C-m
tmux send-keys -t "$session_name":0.1 "$command2" C-m
tmux send-keys -t "$session_name":0.2 "$command3" C-m
tmux attach -t "$session_name"

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A simple full stack Nuxt app to help me keep track of points that my kids earn.

Resources

License

Stars

Watchers

Forks

Packages

No packages published