EMM - EduMentorMe
Framework: Next.js 13
About this project
This project is designed as a hub of many different features. Each feature is unique and serves a common purpose, which is to boost the grades of all UK students.
Features
- Blazingly fast performance.
- UI styled with
tailwind CSS. - Fully accessible; contains screen reader support.
- Optimized for SEO.
- Dark mode using the
shadcn-uilibrary. - Data validation using
zod. - Payment handling using
stripe. - Rate limiting API endpoints using
Upstash. - Protected routes using
middleware. Google Drive APIused to store and manage resources.MDX contentin the main page, about us page, and contact us page viacontentlayer.- Website protected using
reCAPTCHA v3. - Search feature with dynamic routing, using
ISRfor each resource page. - Todo feature uses
zustandto manage the todos' state, andSupabaseto sync these todos in a database. - Simple study timer feature that implements
react-timer-hook. - Contact form uses
nodemailerto receive user feedback. - Login and sign-up feature with email verification using
Supabase.
Goals
- [x] ~Use
CSS variablesto easily allow changes in global theme.~ - [x] Add a
custom SMTPprovider when working withSupabase. - [x] Monetize website features using
Stripe. - [ ] Implement the
OpenAIAPI to create a custom chatbot.
Known issues
- [x] Opengraph images don't work on
WhatsApp - [x] ~Search form selections not registering properly on mobile.~
- [x] Todos do not save after adding a todo then switching tab promptly.
- [ ] Large bundle size for the
login,sign upandcontact uspages.
How to work on the repo yourself
- Install dependencies using pnpm:
pnpm install
- Copy
.env.exampleto.env.localand update the variables.
cp .env.example .env.local
- Start the development server:
pnpm dev
Log in or sign up for Devpost to join the conversation.