From bc868abbef82fa353952f498b098e594279a380e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=20Jurmanovi=C4=87?= Date: Sun, 6 Jul 2025 15:05:04 +0200 Subject: [PATCH] init docs --- 01_Project_Vision.md | 24 ++++++++ 02_Technology_Stack.md | 46 ++++++++++++++++ 03_Architecture_Overview.md | 29 ++++++++++ 04_Project_Phases.md | 78 ++++++++++++++++++++++++++ DATABASE_SCHEMA.md | 106 ++++++++++++++++++++++++++++++++++++ README.md | 12 ++++ 6 files changed, 295 insertions(+) create mode 100644 01_Project_Vision.md create mode 100644 02_Technology_Stack.md create mode 100644 03_Architecture_Overview.md create mode 100644 04_Project_Phases.md create mode 100644 DATABASE_SCHEMA.md create mode 100644 README.md diff --git a/01_Project_Vision.md b/01_Project_Vision.md new file mode 100644 index 0000000..9ee9cd9 --- /dev/null +++ b/01_Project_Vision.md @@ -0,0 +1,24 @@ +1. Project Vision +Project Title + +To be determined. +Core Vision + +To create a high-performance, template-driven web platform designed for developers, project managers, and teams. The platform will be built on a robust and scalable architecture, separating concerns between a powerful backend and a fast, modern frontend. +Key Features + + Template-Driven Projects: Users can initialize new projects from a set of predefined "types," which configure the project's structure and default settings. + + Backend-Driven Integrations: Users can connect their projects to third-party services (like GitHub) through secure, backend-managed integrations. This allows for the centralization of project-related data. + + High-Performance User Experience: The frontend will be a highly responsive, server-rendered application, ensuring fast page loads and excellent SEO performance. + + Future Extensibility: The long-term vision includes a frontend plugin system, allowing third-party developers to build and share new UI and functionality within the platform. + +Target Audience + + Individual Developers + + Development Teams + + Project Managers diff --git a/02_Technology_Stack.md b/02_Technology_Stack.md new file mode 100644 index 0000000..3ac191f --- /dev/null +++ b/02_Technology_Stack.md @@ -0,0 +1,46 @@ +2. Technology Stack +Frontend + + Framework: Next.js + + Language: TypeScript + + UI Library: React + + Styling: Tailwind CSS + + GraphQL Client: Apollo Client or urql + + State Management: React Context API or Zustand + +Backend + + Language: Go + + Web Framework: Echo + + API: GraphQL + + Database: PostgreSQL + + Authentication: JWTs managed by the Go backend + +API Communication + + The Next.js frontend will communicate with the Go backend exclusively through the GraphQL API. + +Integrations + + All third-party integrations (e.g., GitHub) will be handled securely on the Go backend. They will be architected as modular Go packages implementing a common interface. + +Deployment + + Frontend (Next.js): Vercel + + Backend (Go): Docker container deployed on a cloud provider (e.g., Google Cloud Run, AWS Fargate, DigitalOcean). + +Version Control + + System: Git + + Hosting: GitHub (using two separate repositories for frontend and backend). diff --git a/03_Architecture_Overview.md b/03_Architecture_Overview.md new file mode 100644 index 0000000..66d1b5c --- /dev/null +++ b/03_Architecture_Overview.md @@ -0,0 +1,29 @@ +3. Architecture Overview +Core Architecture: Decoupled Frontend & Backend + +The application is built on a modern, decoupled architecture: + + Go Backend: A standalone service responsible for all core business logic. This includes user authentication, database interactions, and processing data from third-party integrations. It exposes all functionality through a single GraphQL API. + + Next.js Frontend: A standalone service that consumes the Go backend's GraphQL API. It is responsible for the entire user interface and user experience. It leverages Next.js's Server-Side Rendering (SSR) capabilities to deliver fast, SEO-friendly pages. + +This separation of concerns allows for independent development, scaling, and maintenance of the frontend and backend. +Backend Integrations Model + +All third-party integrations (e.g., connecting to GitHub) are handled exclusively by the Go backend. + + Security: API keys and other secrets are stored securely on the server and are never exposed to the client-side. + + Modularity: Each integration is built as a distinct Go package that implements a common Integration interface. This makes the system extensible, as new integrations can be added without modifying the core application logic. + + Customization: Users with access to the backend codebase can "install" new integrations by adding the relevant package and recompiling the application. + +Future Vision: Frontend Plugin System + +For a future version (v2.0+), a frontend plugin system is envisioned. This is distinct from backend integrations. + + Purpose: To allow developers to build and add new UI features and functionality directly into the frontend application. + + Architecture: This will be achieved by running third-party JavaScript code in a sandboxed