Gamedoora is an advanced educational platform that combines AI-powered chatbots with educational resources to provide personalized learning experiences. The platform features customizable AI tutors that can answer questions across various academic subjects, all powered by a Next.js-based web application.
- AI Tutors: Custom AI chatbots specialized in different academic subjects
- Document-Based Learning: Upload and learn from PDF resources
- Authentication System: Secure user accounts with role-based access (Admin/User)
- Dashboard Interface: Modern, responsive UI for managing learning resources
- Vector Database Integration: Uses Pinecone for efficient document embedding and retrieval
- Custom Bot Creation: Create and customize AI tutors for specific subjects
- Node.js 18+
- npm, yarn, pnpm or bun
- PostgreSQL database (or Neon serverless Postgres)
Create a .env
file in the root directory with the following variables:
# Database
DATABASE_URL="your_postgres_connection_string"
DIRECT_URL="your_direct_postgres_connection"
# Authentication
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your_nextauth_secret"
# OpenAI (for AI features)
OPENAI_API_KEY="your_openai_api_key"
# Pinecone (for vector database)
PINECONE_API_KEY="your_pinecone_api_key"
PINECONE_ENVIRONMENT="your_pinecone_environment"
- Clone the repository:
git clone https://github.com/yourusername/gamedoora-hackathon.git
cd gamedoora-hackathon
- Install dependencies:
npm install
# or
yarn install
# or
pnpm install
# or
bun install
- Set up the database:
npx prisma generate
npx prisma db push
- Prepare the vector database:
npm run prepare:data
# or
yarn prepare:data
- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
- Open http://localhost:3000 in your browser to see the application.
- Framework: Next.js 14 with App Router
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js with credentials and OAuth providers
- UI: Tailwind CSS with Radix UI components
- AI: LangChain with OpenAI integration
- Vector Database: Pinecone for document embeddings
- Styling: Tailwind CSS with custom components
- Animation: Framer Motion
- Email: React Email for notification templates
/app # Next.js App Router structure
/(auth) # Authentication routes
/(protected) # Protected routes requiring auth
/actions # Server actions
/api # API routes
/components # UI components
/dashboard # Dashboard-specific components
/ui # Shared UI components
/lib # Utility functions and libraries
/prisma # Prisma schema and migrations
/public # Static assets
/types # TypeScript type definitions
The platform uses NextAuth.js for authentication with:
- Email/password credential login
- Role-based access control (Admin/User)
- Protected routes for authenticated users
- Custom AI tutors powered by OpenAI
- PDF document analysis and question answering
- Vector search for relevant information retrieval
- Personalized learning experiences
The UI is fully responsive and works on:
- Desktop computers
- Tablets
- Mobile devices
The admin dashboard provides:
- Analytics on user engagement
- Bot management interface
- User role management
- Content upload and management
The easiest way to deploy this application is with Vercel, the platform created by the makers of Next.js.
Check out the Next.js deployment documentation for more details.