An open API service indexing awesome lists of open source software.

https://github.com/hetav21/qna-app

A messaging platform that allows users to ask questions anonymously.
https://github.com/hetav21/qna-app

mongoose next-auth react-email-component react-hook-form resend shadcn-ui vercel-ai-sdk zod

Last synced: 6 months ago
JSON representation

A messaging platform that allows users to ask questions anonymously.

Awesome Lists containing this project

README

          

## Description

A QnA platform that allows users to ask questions anonymously. Users can create accounts, generate unique usernames, and interact with an intelligent response mechanism that provides contextual and helpful replies. The platform focuses on privacy, allowing individuals to seek information or advice without revealing their identity. Built with modern web technologies like Next.js, React, and powered by AI, the application offers a seamless, secure, and intuitive communication experience.

## Setup

To set up the environment, follow these steps:

1. Clone the repository:
```sh
git clone https://github.com/Hetav21/QnA-app.git
cd QnA-app
```
2. Install dependencies:
```sh
npm install
```
3. Copy `.env` from `.env.example`:
```sh
cp env/.env.example .env
```
4. Populate `.env`:
```sh
$EDITOR .env
```

## Dev Setup

To run the development environment:

```sh
npm run dev
```

## Build for Production

To build the project for production, run the following command:

```sh
npm run build
```

## Libraries Used

- **Frontend**: React, NextJS, Tailwind CSS, Shadcn/UI
- **Authentication & Forms**: AuthJS, React Hook Forms, Zod
- **Backend & Database**: Mongoose, bcryptjs
- **API & Communication**: Vercel AI SDK - OpenAI Provider, Axios
- **Emails**: Resend, React Email Components
- **Utilities**: Lucide React, usehooks-ts

## Project Structure

The project structure is organized as follows:

```text
.
├── api-testing/ # Contains API testing configurations for bruno
├── emails/ # Email templates
├── env/ # Example env configuration
├── public/ # Contains privacy policy and terms of service
├── src/ # Website's source code, contains db schema, ui component, etc.
│ ├── app/ # Contains application specific code, react page templates
│ │ ├── (app)/ # Pages related to user actions after logging in
│ │ ├── (auth)/ # Auth related pages like auth/error, sign-in, sign-up and verify
│ │ ├── (public)/ # Public pages that do not require user authentication like sending questions and reading responses
│ │ ├── api/ # Apis to support user actions
│ ├── components/ # Reusable UI components
│ ├── context/ # React context providers
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions and libraries
│ ├── model/ # Database models
│ ├── models/ # Support for llm models
│ ├── schemas/ # Validation schemas
│ ├── static/ # Static data and assets
│ │ ├── prompts/ # Prompts for llm models
│ └── types/ # TypeScript type definitions
└── styles/ # Various CSS Files
```

## Acknowledgement

Icons8 for favicon

PrivacyPolicies for privacy policy

Termly for terms of service

## License

This project is licensed under the MIT License. See the LICENSE file for more details.