# Project Plan: Copper Tone Technologies Website & Platform **Company:** Hopoyuksa Tali Lakna (Copper Tone Technologies) **Tribal Name:** Amelika Okla Ilemiko **Date:** 2025-11-20 ## 1. Project Overview This document outlines the project plan for the development of the Copper Tone Technologies website and business management platform. The project will deliver a comprehensive web presence that not only promotes the company's services but also integrates functionalities for scheduling, work management, and multi-modal payment processing. The entire system will be built on a modern, self-hosted, and containerized infrastructure, ensuring sovereignty over the company's data and technology stack. It will leverage a Progressive Web App (PWA) frontend, a serverless Go backend, and blockchain technology for key functionalities. ### 1.1. Core Objectives * **Corporate Website:** A professional, public-facing website showcasing the company's services, expertise, and values, implemented as a Progressive Web App (PWA). * **Client Portal:** A secure area for clients to manage projects, view progress, and make payments. * **Work Management System:** An internal tool for scheduling and managing in-house and contract work. * **Payment Gateway:** A system to accept payments via Credit Card, Cryptocurrencies, and other methods, potentially leveraging blockchain for verifiable transactions. * **Self-Hosted Infrastructure:** Full ownership of the git repository, CI/CD pipeline, and communication channels. ### 1.2. Technology Stack * **Frontend:** Vue 3 (as a Progressive Web App - PWA), Tailwind CSS, Vue Router * **State Management:** Pinia * **Content:** Markdown for dynamic content (e.g., blog, services). * **Decentralization (Frontend):** Helia (IPFS) for decentralized data storage. * **Containerization:** Podman * **Version Control:** Self-hosted Gitea * **CI/CD:** Self-hosted Gitea Actions * **Backend:** Go 1.25+ (designed for serverless deployment, blockchain integration, and IPFS interchangeability) * **Database:** PostgreSQL (recommendation) * **Blockchain:** Integration for identity, verifiable transactions, or smart contracts (specifics to be defined in Phase 3/5). * **Messaging:** Matrix (Synapse) for real-time communication. --- ## 2. Development Phases This project is broken down into several phases. Each phase builds upon the previous one. ### Phase 1: Foundation & Infrastructure Setup (Sprint 1-2) ✅ COMPLETE * [x] **Task 1.1: Initialize Git Repository** * Git repository initialized with enterprise workflow (main, develop, testing branches) * [x] **Task 1.2: Containerization with Podman** * Multi-stage `Containerfile`s for frontend (nginx) and all backend services * `podman-compose.yml` orchestrating: frontend, db, auth-service, blog-service, work-management-service, payment-service, ipfs-service, db-init * Health checks and dependency management for all containers * [x] **Task 1.3: Vue.js Project Initialization** * Vue 3 with Composition API and TypeScript * Tailwind CSS 4 for styling * Vue Router 4 with lazy-loaded routes * Pinia for state management (auth, projects, tasks, invoices stores) * [x] **Task 1.4: Gitea & Gitea Actions CI Setup** * Gitea configured with CI/CD workflows * `.gitea/workflows/` configured for automated testing ### Phase 2: Core Website & Frontend Development (Sprint 3-5) ✅ MOSTLY COMPLETE * [x] **Task 2.1: Site Structure and Component Design** * Page structure: Home, About, Services, Blog, Contact, Dashboard, Login, Register * Reusable components in `components/ui/` (BaseCard, FormInput, CtaButton, Spinner) * Layout components in `components/layout/` (TheHeader, TheFooter, Navbar) * [x] **Task 2.2: Public-Facing Pages & PWA Implementation** * Static pages: Home, About Us, Contact implemented * PWA configured with service worker * Responsive design with Tailwind CSS * [x] **Task 2.3: Services Section** * Dynamic services section with Markdown rendering * markdown-it + gray-matter for content parsing * [x] **Task 2.4: Blog/Articles Section (ENHANCED)** * **Site Blogs (Official Content):** * Admin/Staff can create, review, and publish official blog posts and tutorials * Staff-created content requires admin review and approval workflow * Status lifecycle: DRAFT → PENDING_REVIEW → APPROVED/REJECTED → PUBLISHED → ARCHIVED * **Community Blogs (User Content):** * Any authenticated user can create and publish community blogs/tutorials * Community content displayed in separate section from site content * Users can manage (edit/delete) their own community posts * **Content Verification System:** * Admin can verify community content for quality (verified badge) * Admin can promote quality user content to site blogs * Admin can archive or delete inappropriate community content * **API Endpoints:** * `/blogs` - Public site blogs (official) * `/community/blogs` - Public community blogs (user-generated) * `/admin/blogs` - Staff/Admin blog management * `/admin/community/blogs` - Admin community moderation ### Phase 3: Backend Development & Blockchain Integration (Sprint 6-9) * [x] **Task 3.1: Go Backend Setup (Serverless-first)** * Initialized Go 1.25+ project with multiple microservices * Backend services: auth-service, blog-service, work-management-service, payment-service, ipfs-service * Created multi-stage `Containerfile`s for each Go function * PostgreSQL database running in container with automated migrations * Podman-compose orchestration for all services * [x] **Task 3.2: User Authentication, Authorization & Blockchain Identity** * Email/password registration and login with JWT tokens * Blockchain wallet address authentication with signature verification * Multi-identity support (link/unlink multiple auth methods to single account) * Role-based access control (CLIENT, STAFF, ADMIN) * Middleware for route protection by role * **TODO:** Full DID/Verifiable Credentials support * [~] **Task 3.3: Work Management & IPFS-Interchangeable API** (Partial) * Database schema for projects and tasks implemented * Basic CRUD API endpoints for projects and tasks * IPFS service deployed with P2P node * **TODO:** Work orders functionality * **TODO:** IPFS CID storage integration for documents * [~] **Task 3.4: Payment Gateway & Blockchain Transactions** (Partial) * Payment service with Stripe integration structure * Invoice CRUD operations * **TODO:** BTCPay Server integration * **TODO:** Direct blockchain transaction support * [x] **Task 3.5: Blog Service (NEW)** * Complete blog management system with approval workflow * Site blogs (STAFF/ADMIN) with review process * Community blogs (USER) with direct publishing * Content verification and promotion system * Full audit logging * [x] **Task 3.6: Forum/Q&A Service (NEW)** * Community Q&A forum where any user can ask and answer questions * Questions and answers with voting system (upvotes/downvotes) * Admin moderation capabilities (close questions, verify answers) * Marking answers as accepted (by question author) or verified (by admin) * Tag-based filtering and sorting (newest, votes, unanswered) ### Phase 4: Client Portal & Work Management UI (Sprint 10-12) * [ ] **Task 4.1: Client Portal Dashboard** * Develop the client-facing dashboard where users can view their projects. * Implement views for project details, invoices, and payment history. * [ ] **Task 4.2: Internal Work Management Dashboard** * Develop the internal dashboard for managing projects and scheduling resources. * Create UI for assigning tasks to team members (in-house and contract). * [ ] **Task 4.3: Connect Frontend to Backend** * Integrate the frontend with the Go backend API for all dynamic data. * Use Pinia to manage application state (user session, project data, etc.). ### Phase 5: Advanced Features & Integrations (Sprint 13-15) * [ ] **Task 5.1: Helia/IPFS Integration (Frontend & Backend)** * **Frontend:** Utilize Helia for direct client-side interaction with IPFS (e.g., for uploading small files, viewing IPFS-hosted content). * **Backend:** Refine and expand the IPFS-interchangeable Go backend services for robust decentralized storage and retrieval of specific data types. * [ ] **Task 5.2: Messaging Integration (Matrix)** * Deploy a Synapse (Matrix homeserver) instance in a container. * Integrate a Matrix client (or build a custom one) into the client and internal portals for real-time chat. * [ ] **Task 5.3: Self-Hosted Email Server** * Deploy a self-hosted email solution (e.g., Mailu). * **Note:** This is a complex task with significant security implications. It requires careful configuration of DNS (MX, SPF, DKIM, DMARC records). * Configure the application to use the in-house email server for notifications. * [ ] **Task 5.4: Blockchain Advanced Use Cases** * **Smart Contracts:** Explore and implement smart contracts for escrow, verifiable work completion, or dispute resolution. * **Decentralized Storage Proofs:** Investigate using blockchain to provide proofs of data existence/integrity on IPFS. ### Phase 6: Testing, Deployment & Launch (Sprint 16) * [ ] **Task 6.1: End-to-End Testing** * Write end-to-end tests for all critical user flows (e.g., registration, payment, project creation). * [ ] **Task 6.2: Finalize CI/CD Pipeline with Gitea Actions** * Update the Gitea Actions CI/CD pipeline to include stages for: * Running all tests (unit, integration, e2e) for both Frontend and Go Backend. * Building and pushing container images to a registry. * Deploying the new versions of the applications to staging and production based on the Git workflow. * [ ] **Task 6.3: Production Deployment** * Deploy the full application stack to the production server. * [ ] **Task 6.4: Monitoring and Maintenance Plan** * Set up monitoring and logging for all services. * Establish a backup and recovery plan. * Document the ongoing maintenance procedures. --- ## 3. Project Timeline & Milestones This project is estimated to take approximately 16 two-week sprints (32 weeks). This timeline is an estimate and can be adjusted based on the project's velocity and any unforeseen challenges. * **Milestone 1 (End of Sprint 2):** Basic infrastructure is up. Vue.js app and Go backend foundation are containerized and managed via Gitea/Gitea Actions. * **Milestone 2 (End of Sprint 5):** Public-facing PWA website is complete. * **Milestone 3 (End of Sprint 9):** Go Backend API, including initial blockchain/IPFS integrations, is functional. * **Milestone 4 (End of Sprint 12):** Client portal and internal dashboards are functional. * **Milestone 5 (End of Sprint 15):** Advanced features (Helia, Messaging, Email, advanced Blockchain/IPFS) are integrated. * **Milestone 6 (End of Sprint 16):** Project is launched. ```