Files
2025-12-26 13:38:04 +01:00

11 KiB

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

  • Task 1.1: Initialize Git Repository
    • Git repository initialized with enterprise workflow (main, develop, testing branches)
  • Task 1.2: Containerization with Podman
    • Multi-stage Containerfiles 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
  • 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)
  • 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

  • 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)
  • 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
  • Task 2.3: Services Section
    • Dynamic services section with Markdown rendering
    • markdown-it + gray-matter for content parsing
  • 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)

  • 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 Containerfiles for each Go function
    • PostgreSQL database running in container with automated migrations
    • Podman-compose orchestration for all services
  • 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
  • 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
  • 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.