- Project Overview
- Technology and Tools
- Project Setup
- Deployment
- Dependencies Issue
- How to Contribute
- Contribution Points
- GSSoC Guidelines
- Acknowledgements
- Thanks to Contributors
Project Name: GenieAI
This web-based application leverages a range of technologies, tools, and frameworks to provide an efficient chat and PDF management system.
- 📍Next.js: A React framework for production that adds features such as static exporting and server-side rendering to your React applications.
- 📍TypeScript: An open-source language built on JavaScript by adding static type definitions.
- 📍Eslint: A tool for identifying and reporting on patterns in JavaScript.
- 📍Tailwind CSS: A highly customizable, low-level CSS framework.
- 📍Node Package Manager (NPM): The package manager for Node.js to install necessary packages.
- 📍VS Code: A code editor for building and debugging web and cloud applications.
- 📍Shadcn-ui: A popular Tailwind CSS framework to design amazing UI.
- 📍Drizzle ORM: A popular TypeScript-based PostgreSQL ORM that works with edge runtime.
- 📍Pinecone: A cloud-based fast vector database storage provider.
- 📍Clerk: A powerful authentication provider with effortless integration.
-
Initialize the project:
- Run the following command in the terminal:
npx create-next-app@latest --typescript
- When prompted, name the project "GenieAI". Ensure to use the TypeScript flag.
- Run the following command in the terminal:
-
Open the project:
- Change the directory to the project root folder
GenieAI
:cd genieai
- Open the project in VS Code:
code .
- Change the directory to the project root folder
-
Add Environmental Variables to .env file:
- Get the environment variables from the given database URL and add those to your
.env
file in the form of key-value pairs. The file should look like this:DATABASE_URL={Your Database URL here} NEXT_BASE_URL={Your Next base URL here}
- Ensure that there are no white spaces or lines.
- Get the environment variables from the given database URL and add those to your
-
Setup Next Base URL (Optional):
- List the Next base URL in the environmental variables section of your project. Update it later with the one provided by the platform you choose for deployment.
-
Run the project:
- To verify that the project is set up correctly, run:
npm run dev
- Visit
localhost
to check whether everything is working fine.
- To verify that the project is set up correctly, run:
When ready to deploy, update the NEXT_BASE_URL
variable in your .env
file with the Vercel URL or the URL provided by your deployment platform. Please note that more specific changes might be required according to the needs of the project.
Peer dependency issues for React with Clerk and Drizzle ORM can cause problems, so use the peer dependency
flags.
We’re excited to have you contribute to the GenieAI project! Follow these simple steps to get started:
-
🍴 Fork the Repository
- Go to the repository page.
- Click the Fork button (top right) to create a copy in your GitHub account.
-
💻 Clone Your Fork
- Open your terminal and run:
git clone https://github.com/your-username/genieai.git
- Replace
your-username
with your GitHub username.
- Open your terminal and run:
-
🌿 Create a New Branch
- Create a new branch for your work:
git checkout -b your-branch-name
- Create a new branch for your work:
-
🛠️ Make Your Changes
- Open the project files in your code editor and make your changes.
- Contact the project manager Satyam Singh for any queries.
-
✅ Test Your Changes
- Test your changes locally by running the application.
-
💬 Commit Your Changes
- Once ready, commit them with a descriptive message:
git add . git commit -m "Added feature X or Fixed issue Y"
- Once ready, commit them with a descriptive message:
-
📤 Push Your Changes
- Push your changes to your forked repository:
git push origin your-branch-name
- Push your changes to your forked repository:
-
🔄 Create a Pull Request (PR)
- Go back to the original repository here.
- Click the Compare & pull request button, write a short description of your changes, and submit the PR.
-
🔎 Review Changes
- The project manager will review your PR, and if approved, your request will be merged.
Every issue raised will be provided with a level based on the amount of efforts required to complete it. Points awarded based on levels are-
- 🥇 Level 1: 10 Points
- 🥈 Level 2: 25 Points
- 🥉 Level 3: 45 Points
It is important to adhere to the guidelines; violations can affect your profile. Review the guidelines here.
Thank you for taking the time to explore the GenieAI project! Your contributions, feedback, and support are invaluable to us. Together, let's make this project even better! If you have any questions or suggestions, feel free to reach out. If you find this project helpful, please consider giving it a ⭐️! Your support motivates us to continue improving and maintaining this project.