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.
- Host: GitHub
- URL: https://github.com/hetav21/qna-app
- Owner: Hetav21
- License: mit
- Created: 2024-12-25T23:29:32.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-04-01T16:24:40.000Z (6 months ago)
- Last Synced: 2025-04-12T15:18:56.677Z (6 months ago)
- Topics: mongoose, next-auth, react-email-component, react-hook-form, resend, shadcn-ui, vercel-ai-sdk, zod
- Language: TypeScript
- Homepage: https://www.qna.social/
- Size: 836 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.