Skip to content

bugthing/accountable-to

Repository files navigation

🎯 Accountable To

Where Goals Meet AI-Powered Accountability

Rails 8.0 Ruby AI Powered Tests

A sophisticated Ruby on Rails 8 application that combines modern web development with AI to help users achieve their goals through intelligent accountability systems.


🌟 Why This Project Stands Out

Portfolio Showcase: This demonstrates using an array of Rails features with best practices to create a neat little application.

🚀 Modern Rails Architecture

🎨 Professional Frontend

🤖 AI Integration Excellence

DevOps & Deployment


📋 Key Features Demonstrated

🏗️ Architecture & Code Quality

  • MVC Pattern - Clean separation of concerns with organized controllers, models, and views
  • Service Objects - Business logic encapsulation for complex operations
  • Job Processing - Asynchronous background processing to off-load what we can
  • Email Handling - Two-way email communication with Action Mailbox

🧪 Testing Excellence

  • System Tests - Full user journey testing with Capybara. Top of the testing Pyramid
  • Integration Tests - Goal LLM interactions are covered using VCR to mock API calls
  • Job Tests - Background job processing verification
  • Mailer Tests - Email delivery and content testing
  • Model Tests - Comprehensive validation, data and behaviour testing

🎨 Modern Frontend

🚀 Production Ready


🛠️ Quick Start

Prerequisites

  • Ruby 3.3+
  • Bundler
  • SQLite3

Installation

# Clone and install dependencies
git clone git@gitlab.com:bugthing/accountable-to.git
cd accountable-to
bundle install

# Set up access to secrets
export RAILS_MASTER_KEY=your_key_here

# Database setup
bin/rails db:setup

# Start the development server
bin/dev

Visit http://localhost:3000 to see the application in action!

🧪 Running Tests

# Run tests
bin/rails test

# Run system tests
bin/rails test:system    # System tests

# Code quality checks
bin/standardrb          # Ruby linting
bin/brakeman            # Security analysis

🚀 Production Deployment

Kamal Deployment

Deploy to production with a single command using Kamal:

# Deploy to production
kamal deploy

# Check logs
kamal logs

Configuration: config/deploy.yml

Infrastructure as Code

VPS provisioning on Vultr using Terraform:

cd config/provision/

# Configure your SSH key in server.yml
vi server.yml

# Generate Fedora CoreOS ignition file
docker run -it --rm -v $PWD/:/bld -v ~/.ssh:/bld/tmp/ssh \
  quay.io/coreos/butane:release --pretty --strict \
  /bld/server.yml --files-dir /bld > server.ign

# Provision infrastructure
terraform init
terraform apply

Files:


🏗️ Technical Highlights

Data Models

Background Jobs

Email System


📝 License

This project is available as open source under the terms of the MIT License.


❤️ Built to showcase a good understanding of all aspects of modern web application development ❤️

About

Rails application using AI to help people attain their goals

Resources

Stars

Watchers

Forks