https://github.com/kei-k23/mentor
Mentor is an open-source web application for learning, practicing and mastering programming languages and craft interview questions. The goal of this project is to improve the developer community.
https://github.com/kei-k23/mentor
clerk neon nextjs postgresql prisma shadcn-ui
Last synced: 11 months ago
JSON representation
Mentor is an open-source web application for learning, practicing and mastering programming languages and craft interview questions. The goal of this project is to improve the developer community.
- Host: GitHub
- URL: https://github.com/kei-k23/mentor
- Owner: Kei-K23
- License: mit
- Created: 2024-05-05T11:30:22.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-20T14:25:36.000Z (about 2 years ago)
- Last Synced: 2024-06-21T07:34:26.481Z (about 2 years ago)
- Topics: clerk, neon, nextjs, postgresql, prisma, shadcn-ui
- Language: TypeScript
- Homepage: https://mentor-beta.vercel.app
- Size: 1.16 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mentor
## Overview
Mentor is an open-source web application for learning, practicing and mastering programming languages and craft interview questions. The goal of this project is to improve the developer community.
## Features
Key Features:
- Next server actions
- Auth using Clerk
- Dark mode support
- Sound effects
- Hearts system
- Points / XP system
- Exit confirmation popup
- Practice old lessons to regain hearts
- Leaderboard
- Quests milestones and gain rewards
- Shop system to exchange points with hearts
- Landing page
- Real-time comments section with Firebase
- Informative user profile
- Mobile responsiveness
## Tech Stack
- Next.js 14
- Postgresql (Neon cloud)
- Firebase
- Prisma
- Clerk (Auth)
- TypeScript
- Tailwind / ShadcnUI
## Getting Started
### Prerequisites
- Node.js and npm installed on your machine.
- Postgresql database for storing application data.
- Firebase account.
### Installation
1. Setup Clerk web hooks for user create, update and delete.
2. Install dependencies: `npm install`
3. Build database schema: `npm run db:push`
4. Generate prisma schema types: `npx prisma generate`
5. Run seeding script: `npm run db:seed`
6. Start the application locally: `npm run dev`
### Configuration
Make sure to set the following environment variables:
- NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
- CLERK_SECRET_KEY=
- NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
- NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
- NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL=/learn
- NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL=/learn
- NEXT_PUBLIC_CLERK_WEBHOOK_SECRET_KEY=
- DATABASE_URL=
- NEXT_PUBLIC_FIREBASE_API_KEY=
- NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
- NEXT_PUBLIC_FIREBASE_PROJECT_ID=
- NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
- NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
- NEXT_PUBLIC_FIREBASE_APP_ID=
- NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
## Contributing
We welcome contributions from the community! If you find a bug or have an idea for an improvement, please open an issue or submit a pull request. [CONTRIBUTION-GUIDE.md](CONTRIBUTION-GUIDE.md)
## TODO
This is the todo list to complete for version 1.
- [ ] Add errors management
- [ ] Add skeleton and waiting loading animation or style when fetching data
- [ ] Update UI design
- [x] Add features private profile and profile view count
- [ ] Apply pagination and limiting fetching for comments from Firebase
- [ ] Add blogs system
- [ ] Add point gift system to send points from one account to another
## License
This project is licensed under the [MIT License](LICENSE).