This is a blog application built using React, TypeScript, and Vite. It features a comprehensive suite of functionalities including post management, user authentication, and profile management.
git clone <repository-url>
cd <repository-name>
yarn
Start the application with:
yarn dev
Access the application at http://localhost:7777.
- User registration and authentication
- CRUD operations for blog posts
- Search operations for blog posts
- CRUD operations for Commenting on posts
- Assigning categories to posts
- Pagination and search for posts
- Role-based access control
Uses GraphQL for data fetching. Schema and queries:
- Schema:
.graphqlrc
- Queries:
src/lib/graphql/graphql.ts
Trigger codegen when there are changes in the specified GraphQL schemas
yarn watch
Styled using Tailwind CSS and shadcn
No tests currently included. Can be added using Vitest and React Testing Library.
This guide details the steps for deploying the application using GitHub Actions, as defined in the deploy.yaml
file.
Before you start, ensure you have the following:
- An AWS S3 bucket for deploying the built application.
- AWS credentials (access key ID and secret access key) with permissions for S3 bucket operations.
- A CloudFront distribution for serving the application.
Add your AWS credentials to your GitHub repository secrets:
- Go to your repository on GitHub.
- Click on
Settings
>Secrets
>New repository secret
. - Add the following secrets:
AWS_S3_ACCESS_KEY_ID
: Your AWS access key ID.AWS_S3_SECRET_ACCESS_KEY_ID
: Your AWS secret access key.AWS_S3_BUCKET_NAME
: The name of your S3 bucket.
The deployment workflow is triggered with every push to the main branch:
- Push your changes to the main branch to start the deployment process.