Skip to content

feat: add project structure section to README #454

@Vaibhav-221

Description

@Vaibhav-221

✨ Feature Description

Add a well-structured Project Structure section to the README.md file.

Currently, the README provides project information, but it lacks a clear overview of the repository’s folder and file organization. A dedicated project structure section would help contributors understand the codebase faster and navigate important directories with ease.

🤔 Problem It Solves

New contributors often need time to understand where routes, components, APIs, modules, tests, configuration files, and templates are located.

This feature would help:

  • New open-source contributors
  • GSSoC participants
  • Maintainers reviewing documentation
  • Developers trying to understand the project architecture quickly

A documented file structure improves onboarding and makes the repository more contributor-friendly.

💡 Proposed Solution

Add the following Project Structure section to the README.md file:

Project Structure

Editron/
├── .github/                    # CI workflows, issue & PR templates
├── app/                        # Next.js App Router
│   ├── (auth)/                 # Authenticated route group
│   │   └── auth/
│   │       ├── components/     # Auth-specific UI components
│   │       ├── layout.tsx
│   │       └── sign-in/
│   │           └── page.tsx
│   ├── (root)/                 # Public route group
│   │   ├── docs/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── privacy/
│   │   │   └── page.tsx
│   │   ├── templates/
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── terms/
│   │   │   └── page.tsx
│   │   ├── layout.tsx
│   │   └── page.tsx            # Home page
│   ├── api/
│   │   ├── auth/[...nextauth]/route.ts
│   │   ├── chat/
│   │   │   ├── route.ts        # Streaming AI chat endpoint
│   │   │   ├── tools.ts        # Tool definitions for AI
│   │   │   └── chat.test.ts
│   │   ├── collab-token/[id]/route.ts
│   │   ├── completion/route.ts # Code completion endpoint
│   │   ├── delete-account/route.ts
│   │   ├── deploy/
│   │   │   ├── cloudflare/route.ts
│   │   │   ├── netlify/route.ts
│   │   │   └── vercel/route.ts
│   │   ├── projects/[id]/download/route.ts
│   │   ├── template/[id]/route.ts
│   │   ├── templates/meta/route.ts
│   │   └── upload-zip/route.ts
│   ├── dashboard/
│   │   ├── layout.tsx
│   │   └── page.tsx
│   ├── playground/[id]/
│   │   └── page.tsx            # Main editor shell
│   ├── preview/
│   │   └── page.tsx            # Sandbox preview route
│   ├── error.tsx
│   ├── icon.tsx
│   ├── layout.tsx
│   └── page.tsx
├── components/
│   ├── marketing/              # Landing page components
│   │   ├── home-page-client.tsx
│   │   ├── template-card.tsx
│   │   └── template-grid.tsx
│   ├── providers/              # React context providers
│   │   ├── query-provider.tsx
│   │   └── theme-providers.tsx
│   └── ui/                     # shadcn/ui primitives and custom components
├── lib/
│   ├── constants/
│   │   ├── config.ts
│   │   ├── template-summaries.ts
│   │   └── templates.ts        # Starter template registry
│   ├── templates/
│   │   ├── actions.ts
│   │   ├── actions.test.ts
│   │   └── types.ts
│   ├── api-utils.ts            # HTTP client helpers
│   ├── collab-token.ts         # Collaboration token utilities
│   ├── db.ts                   # Prisma client singleton
│   ├── playground-auth.ts      # Playground access control
│   ├── template.ts             # Template mapping and processing
│   ├── user-data.ts            # User data helpers
│   ├── utils.ts                # General utilities
│   └── yjs.ts                  # Yjs document helpers
├── modules/
│   ├── auth/
│   │   ├── actions/
│   │   ├── components/
│   │   ├── hooks/
│   │   └── types.ts
│   ├── dashboard/
│   │   ├── actions/
│   │   ├── components/
│   │   └── types.ts
│   ├── home/                   # Home page sections and components
│   ├── playground/
│   │   ├── components/
│   │   ├── hooks/
│   │   └── lib/
│   │       ├── editor-config.ts
│   │       ├── index.ts
│   │       └── path-to-json.ts
│   ├── profile/
│   │   ├── actions.ts
│   │   ├── components/
│   │   └── data/
│   └── webcontainers/
│       ├── components/
│       └── hooks/
├── server/
│   └── collab.ts               # Standalone Yjs/WebSocket collaboration server
├── editron-starters/           # Bundled starter templates
│   ├── frontend/
│   ├── full-stack/
│   ├── backend/
│   └── tooling/
├── prisma/
│   └── schema.prisma
├── public/
├── tests/
│   ├── __mocks__/
│   ├── smoke/
│   ├── collab-token.test.ts
│   ├── env-manager.test.tsx
│   └── setup.ts
├── types/
│   ├── next-auth.d.ts
│   └── y-websocket.d.ts
├── .env.example
├── next.config.ts
└── package.json

This section can be placed after the setup instructions or before the contribution guidelines so contributors can easily find it.

🔄 Alternatives Considered

An alternative would be to create a separate ARCHITECTURE.md file for explaining the repository structure in more detail.

However, adding a concise project structure directly to the README is more accessible for new contributors because the README is usually the first file they read.

📸 Mockups / Examples

Not applicable, as this is a documentation improvement.

✅ Acceptance Criteria

  • A new Project Structure section is added to README.md
  • The section includes a clear folder tree of the repository
  • Important folders and files include short descriptions
  • The structure is formatted properly using a Markdown code block
  • The README remains clean, readable, and beginner-friendly

📋 Additional Context

This improvement will make the repository easier to understand for first-time contributors and open-source participants, especially those contributing through GSSoC.

🌱 Contributor Checklist

  • I am participating via GSSoC
  • I have read the contribution guidelines
  • I checked for existing issues before creating this

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions