Production URL: https://readthot.louisrvl.fr/
ReadThot is a social media platform where users can:
- Register and log in.
- Create, read, update, and delete articles.
- Comment on articles.
- Like and unlike articles.
- View articles with filtering and sorting options.
This project demonstrates the integration of a GraphQL server with a modern frontend framework using TypeScript, Prisma, and Apollo Client.
The project is organized as a monorepo with two main directories:
-
server/: Contains the GraphQL backend.- Built with Apollo Server and Prisma.
- Handles authentication, queries, and mutations.
- Uses SQLite as the database.
-
webapp/: Contains the React frontend.- Built with Vite and TypeScript.
- Uses Apollo Client for GraphQL communication.
- Implements a responsive UI with Mantine.
- Authentication: JWT-based user authentication.
- CRUD Operations: Create, read, update, and delete articles.
- GraphQL API: Queries and mutations for managing users, articles, comments, and likes.
- Database: Prisma ORM with SQLite.
- User Interface: Responsive design with Mantine components.
- Rich Text Editor: Create and edit articles with formatting options.
- GraphQL Integration: Apollo Client for seamless communication with the backend.
- State Management: React hooks for managing user sessions and UI state.
- Node.js (v22 or higher)
- npm or yarn
- SQLite
git clone https://github.com/Hydevs-Corp/graphql-final-project
cd graphql-final-projector with ssh
git clone git@github.com:Hydevs-Corp/graphql-final-project.git
cd graphql-final-project-
Navigate to the
server/directory:cd server -
Install dependencies:
npm install
-
Set up the database:
npx prisma migrate dev
-
Start the server:
npm run dev
The server will run at http://localhost:4000/graphql.
-
Navigate to the
webapp/directory:cd ../webapp -
Install dependencies:
npm install
-
Start the development server:
npm run dev
The frontend will run at http://localhost:5173.
-
Ensure Docker and Docker Compose are installed on your system.
-
Run the following command to start the project:
docker-compose up -d
-
The application will be accessible at the port defined in the
.envfile.
- Open the frontend in your browser:
- Development:
http://localhost:5173 - Production: https://readthot.louisrvl.fr/
- Development:
- Register a new user or log in with an existing account.
- Create, view, and interact with articles.
- Apollo Server
- Prisma ORM
- SQLite
- TypeScript
- bcrypt
- jsonwebtoken
- React
- Vite
- Apollo Client
- Mantine UI
- TypeScript
- Tiptap Rich Text Editor
This project is licensed under the MIT License.