This is a feature-rich blogging platform built with Vue 3, using chadcn-vue, Supabase, and TypeScript.
- User authentication with Google login
- Create, read, update, and delete blog posts
- Markdown support for writing blog posts
- View tracking for blog posts
- Tag management for blog posts
- User profiles
- Dark mode support
- File storage using Supabase Storage
- Transaction-like operations using PostgreSQL functions
- Vue 3
- TypeScript
- Supabase for backend, authentication, and file storage
- PostgreSQL functions for complex database operations
- chadcn-vue for UI components
- Markdown parser for blog post content
- Vitest for unit testing
- Vue Test Utils for component testing
- Clone the repository
- Install dependencies:
pnpm install- Set up your Supabase project and add the credentials to your environment variables
- Set up Supabase Storage buckets for file uploads
- Create necessary PostgreSQL functions in your Supabase project
- Run the development server:
pnpm run devThis project uses Vitest for unit testing and Vue Test Utils for component testing.
To run unit tests:
pnpm run test:unitTo run tests with coverage:
pnpm run test:unit:coverageTo run E2E tests:
pnpm run test:e2esrc/components: Vue componentssrc/stores: Pinia stores for state managementsrc/composables: Reusable Vue composition functionssrc/router: Vue Router configuration.spec.ts: Test filescypress: E2E tests
- Authentication components (e.g., LoginWithGoogle)
- Blog post components (CreateBlogForms, MediaUpload)
- Tag management components
- User profile components
- Navigation components
- Rich text editor component
Note: It may take up to 24h for the contrib.rocks plugin to update because it's refreshed once a day.
This project is licensed under the [Apace.2 License] - see the LICENSE.md file for details.