AIVO is an AI-based qualitative research suite designed to find and extract relevant information from custom data store for a smooth and efficient qualitative research experience using generative AI. Enabling innovate search operations like RAG, RFG, Batch Processing, Serialized Search, etc.
Please star ⭐ the repo if you want us to continue developing and improving the qualitative research tool! 😀
- AI-powered document retrieval
- Natural language processing to understand user queries
- Retrieval Augmented Generation (RAG) based extractions
- Supports multiple file formats (PDF, DOCX, TXT)
- Create Account
- Sign in with Email and Password
- User-friendly web interface
- Database integration
- Responsive UI
- Cloud Deployement Ready
- Sign in with Google [Setting up Google OAuth]
- Integration with AIVO Brain stand alone API
- RFG Support
- Saved Prompts with Efficient Matrix Search Operations
- Stats Dashboard
- Next.js This is a React framework that provides features such as server-side rendering and static site generation. It's used for building the user interface of your application. The main configuration for Next.js can be found in next.config.js.
- Tailwind CSS This is a utility-first CSS framework for rapidly building custom user interfaces. It's used for styling the application. The configuration for Tailwind CSS can be found in postcss.config.js.
- Postgres This is a powerful, open source object-relational database system. It's used for storing application data. The connection to Postgres is likely managed through Prisma.
- React This is a JavaScript library for building user interfaces. It's used for creating the interactive elements of your application. The React components are located in the components directory.
- Prisma This is an open-source database toolkit. It's used for object-relational mapping, which simplifies the process of writing database queries. Prisma configuration and schema can be found in the prisma directory.
- TypeScript This is a typed superset of JavaScript that compiles to plain JavaScript. It's used to make the code more robust and maintainable. TypeScript definitions and configurations can be found in files like next-env.d.ts and i18next.d.ts.
- Svix (Provides Webhook Orchestration) This is a service for handling webhooks. It's used to emit events on user/team CRUD operations, which can then be caught and handled by other parts of the application or external services. The integration of Svix is distributed throughout the codebase, primarily in areas where Create, Read, Update, and Delete (CRUD) operations are executed.
- Retraced (Provides Audit Logs Service) This is a service for audit logging and data visibility. It helps track user activities within the application i.e (who did what and when in the application). The usage of Retraced would be dispersed throughout the codebase, likely in the files where important actions are performed.
- Playwright (Provides E2E tests) This is a Node.js library for automating browsers. It's used to run end-to-end tests on the application. The Playwright configuration and tests can be found in the tests directory.
- Docker (Provides Docker Compose) This is a platform for developing, shipping, and running applications. It's used to containerize the application and its dependencies. The Docker configuration can be found in the Dockerfile and docker-compose.yml.
- NextAuth.js (Provides Authentication) This is a complete open-source authentication solution for Next.js applications. It's used to handle user authentication and authorization. The NextAuth.js configuration and providers can be found in the pages/api/auth/[...nextauth].ts file.
See & Interact with Figma Prototype
Please follow these simple steps to get a local copy up and running.
- Node.js (Version: >=18.x)
- PostgreSQL
- NPM
- Docker compose
- Fork the repository
- Clone the repository by using this command:
git clone https://github.com/Smarter-Work-with-Generative-AI-Aalto/AIVO_WebApp.git
cd AIVO_WebApp
npm install
Duplicate .env.example
to .env
.
cp .env.example .env
To make the process of installing dependencies easier, we offer a docker-compose.yml
with a Postgres container.
docker-compose up -d
#or
docker compose up -d
npx prisma db push
In a development environment:
npm run dev
-
Upload your documents
You can upload your research documents through the web interface. The application supports PDF, DOCX, and TXT formats.
-
Query the AI
Enter your research question or query in natural language. The AI will process your query and retrieve relevant documents.
-
View results
The AI will display the relevant documents along with extracted information related to your query.
Thanks for taking the time to contribute! Contributions make the open-source community a fantastic place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please try to create bug reports that are:
- Reproducible. Include steps to reproduce the problem.
- Specific. Include as much detail as possible: which version, what environment, etc.
- Unique. Do not duplicate existing opened issues.
- Scoped to a Single Bug. One bug per report.
We welcome contributions from the community! Here’s how you can help:
-
Fork the repository
Click the "Fork" button at the top-right corner of this repository.
-
Clone your fork
git clone https://github.com/your-username/AIVO_WebApp.git cd AIVO_WebApp
-
Create a new branch
git checkout -b feature-branch-name
-
Make your changes
Implement your changes and commit them with a clear and descriptive commit message.
-
Push to your fork
git push origin feature-branch-name
-
Create a pull request
Open a pull request on the original repository to merge your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
- Professor Henri Schildt for initial concept and ideation as well as a working prototype
For any questions or suggestions, feel free to reach out to us via email.
Made with ❤️ in Helsinki