{"id":19954203,"url":"https://github.com/code100x/build-your-own","last_synced_at":"2025-05-08T23:34:50.542Z","repository":{"id":255752221,"uuid":"846970167","full_name":"code100x/build-your-own","owner":"code100x","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-15T11:15:05.000Z","size":318,"stargazers_count":42,"open_issues_count":6,"forks_count":24,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-31T19:21:34.677Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code100x.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-24T13:29:13.000Z","updated_at":"2025-03-28T07:13:04.000Z","dependencies_parsed_at":"2024-09-07T01:29:37.340Z","dependency_job_id":"0520d012-8080-47cd-aff3-19deca6d1d2f","html_url":"https://github.com/code100x/build-your-own","commit_stats":null,"previous_names":["code100x/build-your-own"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code100x%2Fbuild-your-own","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code100x%2Fbuild-your-own/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code100x%2Fbuild-your-own/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code100x%2Fbuild-your-own/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code100x","download_url":"https://codeload.github.com/code100x/build-your-own/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253165696,"owners_count":21864460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-13T01:19:13.281Z","updated_at":"2025-05-08T23:34:50.514Z","avatar_url":"https://github.com/code100x.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Build Your Own X\n\n## Overview\n\nThe goal of this project is to create a robust platform where users can build various \"Build Your Own X\" projects using multiple programming languages.\n\n## Key Features\n\n1. **Documentation Templates**\n\n   - Provide detailed, language-specific documentation templates for each \"Build Your Own X\" project.\n   - Support multiple languages such as Python, JavaScript, Go, Ruby, and more.\n\n2. **Private Git Repositories**\n\n   - Host projects in private Git repositories to ensure secure and isolated environments.\n   - Repositories named with unique project and user identifiers (e.g., `project-\u003cproject-id\u003e-user-\u003cuser-id\u003e`).\n\n3. **User Workflow**\n\n   - Users clone their assigned repositories to start working on projects.\n   - Make incremental commits as they progress, following the documentation steps.\n   - Push changes to the remote repository regularly to track progress.\n\n4. **Automated Testing \u0026 Real-time Feedback**\n   - Run automated tests after every commit to validate progress.\n   - Provide real-time feedback using WebSockets or polling to indicate pass/fail status of each step.\n   - Use visual indicators for easy tracking of progress and status.\n\n## Architecture\n\n### 1. Monorepo Structure with Turborepo\n\n- **Monorepo Tooling:** Use **Turborepo** to manage the monorepo, which will host both frontend and backend projects. This setup will facilitate shared configurations, faster build times, and easier dependency management.\n\n### 2. Frontend: React Application\n\n- **Framework:** React with Vite\n- **State Management:** Zustand and React Query for data fetching and state management.\n- **UI Library:** Tailwind CSS + ShadCN for styling components.\n- **Routing:** React Router for routing needs.\n- **Testing:** Jest and React Testing Library for unit and integration tests.\n- **Build and Dev:** Use Turborepo to run build and development tasks efficiently.\n\n### 3. Backend: Express Application\n\n- **Framework:** Express.js for handling HTTP requests and routing.\n- **Database:** Prisma ORM for database interactions (PostgreSQL as the database).\n- **Authentication:** Passport.js with Google and Github OAuth for authentication.\n- **Middleware:** Include common middleware for logging, error handling, and security.\n- **Testing:** Use Jest for backend testing.\n- **Build and Dev:** Integrated with Turborepo for streamlined development.\n\n## Setup and Configuration\n\n### 1. TypeScript Configuration\n\n- **Request:** Add TypeScript configurations to both frontend and backend projects to enable strong typing and better developer experience.\n  - Configure TypeScript in the root of the monorepo for shared settings.\n  - Specific `tsconfig.json` files for React and Express apps for tailored configurations.\n\n### 2. ESLint and Prettier Configuration\n\n- **Request:** Add Eslint and Prettier as a common package to enable strong linting and better developer experience.\n  - Specific eslint and prettier config files for React and Express apps for tailored configurations .\n\n### 3. Tailwind CSS Configuration\n\n- **Request:** Set up Tailwind CSS configuration as a separate package to maintain a consistent design system across projects.\n  - Centralize `tailwind.config.js` in a shared package within the monorepo.\n  - Ensure that both frontend apps and UI components can import and utilize the same Tailwind setup.\n\n### 4. ShadCN UI Library\n\n- **Request:** Create a separate package for ShadCN UI components to promote reuse and consistency.\n  - Develop shared React components with ShadCN, stored in a `ui` package.\n  - Ensure these components are easily importable into any React application within the monorepo.\n\n### 5. Database Setup\n\n- **Request:** Configure a separate package for database interactions using Prisma.\n  - Define the database schema and migrations within a dedicated `db` package.\n  - Centralize Prisma configurations to streamline database setup and ensure consistent database access across different services.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode100x%2Fbuild-your-own","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode100x%2Fbuild-your-own","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode100x%2Fbuild-your-own/lists"}