Skip to content

Latest commit

 

History

History
78 lines (53 loc) · 1.83 KB

File metadata and controls

78 lines (53 loc) · 1.83 KB

Curio

Curio is an AI-powered learning workspace built for students. It combines chat, projects, organized learning, and a clean modern interface to help users study more effectively, manage topics better, and keep their AI conversations useful over time.

Features

  • Google authentication for secure sign-in
  • Personal chat history per user
  • Project-based organization for learning topics
  • AI-powered responses with a student-focused workflow
  • Clean and responsive UI
  • Live deployment for real usage
  • Scalable backend structure with a real database

Tech Stack

  • Frontend: React, TypeScript, Vite
  • UI: Tailwind CSS, shadcn/ui
  • Animations: Framer Motion
  • Backend: Express.js
  • Database: PostgreSQL with Drizzle ORM
  • Authentication: Google OAuth
  • AI: Groq models
  • Hosting: Render
  • Version Control: GitHub

Getting Started

Prerequisites

  • Node.js
  • pnpm or npm
  • PostgreSQL database
  • Google OAuth credentials
  • Groq API key

Environment Variables

Create a ".env" file with the required values for your backend and database connection.

Example:

DATABASE_URL= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GROQ_API_KEY= GROQ_MODEL= SESSION_SECRET=

Development

Install dependencies and run the app locally using your preferred package manager.

pnpm install pnpm dev

Build

pnpm build

Run Production

pnpm start

Project Structure

  • "frontend/" or "app/" for the user interface
  • "api-server/" for backend routes and AI logic
  • "db/" for database schema and migrations
  • shared workspace packages for common utilities

Why Curio

Most AI tools answer questions, but Curio is designed to help students build a learning routine. It is not only a chatbot. It is a workspace where knowledge stays organized, reusable, and easier to continue.

License

This project was built for the hackathon submission and may be adapted based on the repository owner’s preferences.