https://github.com/DanielCraciunGitHub/EduMentorMe
This project is a hub of many different features used to enhance your education. Each feature is unique and serves a common purpose, which is to boost the grades of all UK students in higher education.
https://github.com/DanielCraciunGitHub/EduMentorMe
contentlayer googleapis nextjs nextjs13 react-timer-hook recaptcha-v3 shadcn-ui supabase zod zustand
Last synced: over 1 year ago
JSON representation
This project is a hub of many different features used to enhance your education. Each feature is unique and serves a common purpose, which is to boost the grades of all UK students in higher education.
- Host: GitHub
- URL: https://github.com/DanielCraciunGitHub/EduMentorMe
- Owner: DanielCraciunGitHub
- License: mit
- Created: 2023-06-22T13:38:28.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-09-22T14:50:53.000Z (almost 3 years ago)
- Last Synced: 2024-10-24T18:34:57.321Z (over 1 year ago)
- Topics: contentlayer, googleapis, nextjs, nextjs13, react-timer-hook, recaptcha-v3, shadcn-ui, supabase, zod, zustand
- Language: TypeScript
- Homepage: https://cmt-xi.vercel.app
- Size: 1.91 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 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-ui` library.
- Data validation using `zod`.
- Payment handling using `stripe`.
- Rate limiting API endpoints using `Upstash`.
- Protected routes using `middleware`.
- `Google Drive API` used to store and manage resources.
- `MDX content` in the main page, about us page, and contact us page via `contentlayer`.
- Website protected using `reCAPTCHA v3`.
- Search feature with dynamic routing, using `ISR` for each resource page.
- Todo feature uses `zustand` to manage the todos' state, and `Supabase` to sync these todos in a database.
- Simple study timer feature that implements `react-timer-hook`.
- Contact form uses `nodemailer` to receive user feedback.
- Login and sign-up feature with email verification using `Supabase`.
## Goals
- [x] ~Use `CSS variables` to easily allow changes in global theme.~
- [x] Add a `custom SMTP` provider when working with `Supabase`.
- [x] Monetize website features using `Stripe`.
- [ ] Implement the `OpenAI` API 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 up` and `contact us` pages.
## How to work on the repo yourself
1. Install dependencies using pnpm:
```sh
pnpm install
```
2. Copy `.env.example` to `.env.local` and update the variables.
```sh
cp .env.example .env.local
```
3. Start the development server:
```sh
pnpm dev
```