A full-stack discussion application built using Next.JS, GraphQL, Typescript and MongoDB with user authentication. Users can post questions or queries in the app and other users can resolve or discuss those queries.
Demo for the project
- Next.JS 12
- Typescript
- MongoDB (using Mongoose as ORM)
- TailwindCSS and Chakra-UI (for UI)
- GraphQL for querying data
- Apollo-server-micro for serving back-end server
- Formik and Yup for creating forms
- Urql for using GraphQL on client-side
- React-md-editor for rich text editor
- Jsonwebtoken, Cookie and BcryptJS for authentication
- GraphQL Code generator for generating GraphQL hooks and types based on the GraphQL schema
Install the node modules using:
npm i
# or
yarn
Then, start the development server by entering either of the commands:
npm run dev
# or
yarn dev
- View all the questions/queries and its discussion
- Log in/register to post questions and answers
- Edit your questions and answers
- Delete your question or answer
- Upvote or downvote a question or answer
- View profile of any user
- Edit your profile
- Upload avatar in profile using Cloudinary cloud storage
- Private routes accessible for only authorized users
- Search for a topic or view all topics
![Main page](/ankitk26/among-us/raw/main/public/main.png)
![single question](/ankitk26/among-us/raw/main/public/single question.png)
![user'sprofile](/ankitk26/among-us/raw/main/public/profile.png)
![Search for topics](/ankitk26/among-us/raw/main/public/search.png)
- UI inspiration from Dribble
- Font used - Work Sans
- GraphQL Code Generator based on Ben Awad's youtube video
- Authentication functions based on Vercel's Next.JS example