|
1 | | -# api-documentation-generator |
2 | | -NextJS Hackathon |
| 1 | +# ClarioDocs API Documentation Generator |
| 2 | + |
| 3 | +ClarioDocs API Documentation Generator is a web application designed to help users upload, process, and generate interactive documentation for API specifications (such as OpenAPI or Postman collections). The project provides a collaborative interface for managing documentation projects, previewing MDX documents, and handling real-time updates to documentation files. |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- **API Spec Uploads:** Easily upload OpenAPI or Postman specification files. The system automatically detects the file type and processes it for documentation generation. |
| 8 | +- **Project Management:** Create and manage multiple documentation projects, each with its own set of MDX files and version history. |
| 9 | +- **MDX Editor & Live Preview:** Edit your documentation in MDX format and preview changes live in the browser. |
| 10 | +- **Real-Time Collaboration:** Sidebar and documentation updates propagate in real time using Supabase channels for team collaboration. |
| 11 | +- **Code Blocks & Groups:** Highlight code examples and organize them into tabbed groups for easy comparison. Includes copy-to-clipboard functionality and MDX parsing fixes. |
| 12 | +- **Version History:** Track changes and revert to previous versions of documentation files. |
| 13 | +- **Rich Components:** Includes UI components for document previews, sidebars, code display, and more. |
| 14 | +- **Supabase Integration:** Uses Supabase for authentication, storage, and real-time synchronization. |
| 15 | + |
| 16 | +## Technology Stack |
| 17 | + |
| 18 | +- **Frontend:** React, Next.js, TypeScript |
| 19 | +- **Backend:** Next.js API routes |
| 20 | +- **Database & Realtime:** Supabase |
| 21 | +- **Styling:** Tailwind CSS |
| 22 | +- **MDX Support:** Custom MDX component integrations |
| 23 | + |
| 24 | +## Getting Started |
| 25 | + |
| 26 | +### Prerequisites |
| 27 | + |
| 28 | +- Node.js >= 18 |
| 29 | +- Supabase project (with tables for `project_mdx`, `project_versions`, and file storage) |
| 30 | +- Yarn or npm |
| 31 | + |
| 32 | +### Installation |
| 33 | + |
| 34 | +1. **Clone the repository:** |
| 35 | + ```sh |
| 36 | + git clone https://github.com/rasenga223/clariodocs-api-documentation-generator.git |
| 37 | + cd clariodocs-api-documentation-generator |
| 38 | + ``` |
| 39 | + |
| 40 | +2. **Install dependencies:** |
| 41 | + ```sh |
| 42 | + yarn install |
| 43 | + # or |
| 44 | + npm install |
| 45 | + ``` |
| 46 | + |
| 47 | +3. **Configure Supabase:** |
| 48 | + - Copy `.env.example` to `.env.local` and set your Supabase credentials. |
| 49 | + |
| 50 | +4. **Run the development server:** |
| 51 | + ```sh |
| 52 | + yarn dev |
| 53 | + # or |
| 54 | + npm run dev |
| 55 | + ``` |
| 56 | + |
| 57 | +### Usage |
| 58 | + |
| 59 | +- Upload your API specification file (OpenAPI or Postman format). |
| 60 | +- Create a project and start editing your documentation in MDX. |
| 61 | +- Collaborate with your team in real time. |
| 62 | +- Preview changes and publish documentation. |
| 63 | + |
| 64 | +## Project Structure |
| 65 | + |
| 66 | +- `src/components/`: UI components (sidebar, chat window, code display, MDX components) |
| 67 | +- `src/services/apiDocumentationService.ts`: Handles file uploads, project creation, and file type detection. |
| 68 | +- `src/app/api/publish/route.ts`: API route for publishing documentation. |
| 69 | +- `src/lib/`: Supabase client and utilities. |
| 70 | + |
| 71 | +## Development Notes |
| 72 | + |
| 73 | +- Code blocks are preprocessed to fix MDX parsing issues (backticks, curly braces). |
| 74 | +- The sidebar supports drag-and-drop reordering and real-time updates via Supabase. |
| 75 | +- Version history and document outline are kept in sync for collaborative editing. |
| 76 | + |
| 77 | +## License |
| 78 | + |
| 79 | +This project is licensed under the GNU Affero General Public License v3.0. See the [LICENSE](./LICENSE) file for details. |
| 80 | + |
| 81 | +## Contributing |
| 82 | + |
| 83 | +Pull requests and issues are welcome! Please open an issue to discuss major changes. |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | +``` |
0 commit comments