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.ymlorchestrating: frontend, db, auth-service, blog-service, work-management-service, payment-service, ipfs-service, db-init- Health checks and dependency management for all containers
- Multi-stage
- 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
- Site Blogs (Official Content):
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.
- Update the Gitea Actions CI/CD pipeline to include stages for:
- 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.