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

185 lines
11 KiB
Markdown

# 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.
```