A lightweight onboarding platform with an AI assistant that answers questions from uploaded company documentation and provides role-specific onboarding checklists.
Tech stack:
- Backend: .NET 8, ASP.NET Core, Entity Framework Core, PostgreSQL (supports Supabase)
- Frontend: React + TypeScript, Vite, Tailwind CSS
- AI: Uses Gemini via
GEMINI_API_KEYand TF-IDF embeddings for retrieval
- Upload onboarding documents (PDF / text) and split into searchable chunks
- Vector search using TF-IDF + in-memory vector store
- AI Chat Assistant (
/api/chat/OnboardingAssistant) that answers questions based on uploaded docs - Admin area: upload and manage docs, build checklists
- Backend
cd BackEnd\OnboardingChat.Api
# (optional) install EF tools
dotnet tool install --global dotnet-ef
# apply migrations (creates tables)
dotnet ef database update
# run the API (defaults to http://localhost:5079)
dotnet runSee the backend docs for more detail: BackEnd/OnboardingChat.Api/QUICK_START.md, BackEnd/OnboardingChat.Api/DATABASE_SETUP.md, and BackEnd/OnboardingChat.Api/SUPABASE_SETUP.md.
- Frontend
cd FrontEnd
npm install
npm run dev
# open http://localhost:5173 in your browserThe frontend expects the API at http://localhost:5079 by default (see FrontEnd/src/components/chatbot/ChatbotPanel.tsx).
Create a .env in BackEnd/OnboardingChat.Api/ with at least:
DATABASE_CONNECTION_STRING=Host=localhost;Port=5432;Database=onboarding_chat;Username=postgres;Password=YOUR_PASSWORD
GEMINI_API_KEY=your_gemini_api_keyImportant: do not commit secrets. Use environment variables in production and follow the Supabase guide if you use a managed DB.
- Swagger UI: http://localhost:5079/swagger
- Document upload endpoint:
POST /api/documents - Chat endpoint:
POST /api/chat/OnboardingAssistant
- Migrations:
dotnet ef migrations add <Name>anddotnet ef database update - Application calls
EnsureCreated()by default; consider switching toDatabase.Migrate()for production (see QUICK_START.md).
- Open issues and PRs are welcome. Please include a clear description and reproduction steps.
No license file is included. Add a LICENSE if you want to open-source this project (MIT / Apache-2.0 are common choices).
If you'd like, I can also:
- add a basic
LICENSEfile - add env sample files (
.env.example) and GitHub workflow for CI