185 lines
11 KiB
Markdown
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.
|
|
``` |