Testly is an interactive learning platform built with modern web technologies, featuring a Duolingo-inspired interface for engaging test preparation. The platform focuses on providing an intuitive user experience with real-time feedback and AI-powered assistance.
- Frontend: Next.js 15.1 with React 18
- Backend: Next.js API Routes
- Database: Neon SQL Database
- External Services:
- Google OAuth for Authentication
- OpenAI API for AI Assistant
- Resend API for Email Services
- Frontend Layer: Responsive UI with Tailwind CSS and Radix UI components
- Authentication: Secure authentication using NextAuth.js with Google provider
- AI Integration: GPT-powered chatbot for interactive learning assistance
- Progress Tracking: Real-time progress monitoring and feedback system
- Email Services: Automated feedback collection using Resend API
- Interactive Question Interface
- Real-time Progress Tracking
- AI-powered Learning Assistant
- User Authentication
- Progress Grid Visualization
- Rating & Feedback System
- Lives System
- Sound Effects
├── src/
│ ├── app/ # Next.js app router pages
│ ├── components/ # React components
│ ├── contexts/ # Global state management
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utility functions
│ └── types/ # TypeScript definitions
├── public/ # Static assets
└── config/ # Configuration files
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository
git clone [repository-url]- Install dependencies
npm install- Set up environment variables
Create a
.env.localfile with:
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
OPENAI_API_KEY=
RESEND_API_KEY=
- Run the development server
npm run dev- Styling: Tailwind CSS with custom variables
- Components: Mix of custom components and shadcn/ui
- State Management: React Context API
- Form Handling: React Hook Form
- Testing: Vitest with React Testing Library
npm run dev- Start development server with Turbopacknpm run build- Create production buildnpm run test- Run test suite with coveragenpm run lint- Run ESLint checks
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
MIT License
For support or inquiries, please open an issue in the repository.