{"id":19977070,"url":"https://github.com/adrianhajdin/jsmasterypro_devflow","last_synced_at":"2025-04-13T00:48:01.308Z","repository":{"id":259405963,"uuid":"876922594","full_name":"adrianhajdin/jsmasterypro_devflow","owner":"adrianhajdin","description":"Codebase for the Ultimate Next.js Course","archived":false,"fork":false,"pushed_at":"2025-03-13T12:04:32.000Z","size":3871,"stargazers_count":197,"open_issues_count":3,"forks_count":84,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-04-13T00:47:56.732Z","etag":null,"topics":["nextjs","nextjs15","react19"],"latest_commit_sha":null,"homepage":"https://www.jsmastery.pro/next15","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrianhajdin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-22T19:22:11.000Z","updated_at":"2025-04-12T15:34:03.000Z","dependencies_parsed_at":"2024-10-25T05:32:43.517Z","dependency_job_id":"40b2651c-5f58-4537-ab36-26c2caddbd0e","html_url":"https://github.com/adrianhajdin/jsmasterypro_devflow","commit_stats":null,"previous_names":["adrianhajdin/jsmasterypro_devflow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianhajdin%2Fjsmasterypro_devflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianhajdin%2Fjsmasterypro_devflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianhajdin%2Fjsmasterypro_devflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianhajdin%2Fjsmasterypro_devflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrianhajdin","download_url":"https://codeload.github.com/adrianhajdin/jsmasterypro_devflow/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650437,"owners_count":21139672,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","nextjs15","react19"],"created_at":"2024-11-13T03:26:42.870Z","updated_at":"2025-04-13T00:48:01.287Z","avatar_url":"https://github.com/adrianhajdin.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cbr /\u003e\n    \u003ca href=\"https://www.jsmastery.pro/ultimate-next-course\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://github.com/user-attachments/assets/769882e6-bae6-4932-a117-829cf34f809f\" alt=\"Project Banner\"\u003e\n    \u003c/a\u003e\n  \u003cbr /\u003e\n\n  \u003cdiv\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-TypeScript-black?style=for-the-badge\u0026logoColor=white\u0026logo=typescript\u0026color=3178C6\" alt=\"typescript\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-Next_JS-black?style=for-the-badge\u0026logoColor=white\u0026logo=nextdotjs\u0026color=000000\" alt=\"nextdotjs\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-Tailwind_CSS-black?style=for-the-badge\u0026logoColor=white\u0026logo=tailwindcss\u0026color=06B6D4\" alt=\"tailwindcss\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-MongoDB-black?style=for-the-badge\u0026logoColor=white\u0026logo=mongodb\u0026color=47A248\" alt=\"mongodb\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-ShadCN_UI-black?style=for-the-badge\u0026logoColor=white\u0026logo=shadcnui\u0026color=000000\" alt=\"shadcnui\" /\u003e\n    \u003cimg src=\"https://img.shields.io/badge/-Open_AI-black?style=for-the-badge\u0026logoColor=white\u0026logo=openai\u0026color=412991\" alt=\"openai\" /\u003e\n  \u003c/div\u003e\n\n  \u003ch3 align=\"center\"\u003eThe Ultimate Next.js Course\u003c/h3\u003e\n\n   \u003cdiv align=\"center\"\u003e\n     Build this project step by step with our detailed course on \u003ca href=\"https://www.jsmastery.pro\" target=\"_blank\"\u003e\u003cb\u003eJavaScript Mastery PRO\u003c/b\u003e\u003c/a\u003e Website. Join the JSM PRO family!\n    \u003c/div\u003e\n\u003c/div\u003e\n\n## 📋 \u003ca name=\"table\"\u003eTable of Contents\u003c/a\u003e\n\n1. 🤖 [Introduction](#introduction)\n2. ⚙️ [Tech Stack](#tech-stack)\n3. 🔋 [Features](#features)\n4. 🤸 [Quick Start](#quick-start)\n5. 🔗 [Assets](#links)\n\n## 🚨 Course\n\nThis repository contains the code corresponding to an in-depth course available on our \u003ca href=\"https://jsmastery.pro/\" target=\"_blank\"\u003e\u003cb\u003eJavaScript Mastery Pro Website\u003c/b\u003e\u003c/a\u003e.\n\nIf you prefer visual learning, this is the perfect resource for you. Follow our course to learn how to build projects like these step-by-step in a beginner-friendly manner\n\n\u003ca href=\"https://www.jsmastery.pro/ultimate-next-course\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/54ef6cd0-1f00-4989-a6a5-3f77ca3f68a2\" style=\"width: 150px; height: auto;\" /\u003e\n\u003c/a\u003e\n\n## \u003ca name=\"introduction\"\u003e🤖 Introduction\u003c/a\u003e\n\nIn this in-depth course, you’ll master Next.js by building and deploying a full-stack project, Devoverflow—a community-driven platform inspired by StackOverflow, enhanced with AI-powered answers, gamification, recommendations, and more. Using the latest features of Next.js, you’ll explore rendering strategies like SSG, ISR, SSR, PPR, Server Functions, Caching, \u0026 Revalidation to create a production-ready application.\n\nThe project uses MongoDB for a robust database layer, NextAuth (Auth.js) for versatile authentication options (Email/Password, GitHub, Google), and sleek styling with TailwindCSS and ShadCN UI. Devoverflow enables developers to ask questions, post answers, leverage AI for responses, vote, organize content, contribute, discover jobs, and explore recommended topics—all while engaging with gamified elements like badges and rewards.\n\nIf you're getting started and need assistance or encounter any bugs, you can join our active PRO Discord community, which has over 5k+ members. It's a place where people help each other out.\n\n## \u003ca name=\"tech-stack\"\u003e⚙️ Tech Stack\u003c/a\u003e\n\n- Zod\n- Next.js\n- NextAuth\n- Open AI\n- MongoDB\n- ShadCN UI\n- TypeScript\n- TailwindCSS\n- React Hook Form\n\n## \u003ca name=\"features\"\u003e🔋 Features\u003c/a\u003e\n\n👉 **Authentication**: Secure sign-in with NextAuth, supporting Email/Password, Google, and GitHub.\n\n👉 **Home Page**: Displays questions with filters, search, and pagination for easy navigation.\n\n👉 **Recommendations**: Personalized suggestions on the home page.\n\n👉 **Complex Layout**: Organized layout with popular questions and tags in view.\n\n👉 **Question Details**: View questions with rich content, including images and code blocks.\n\n👉 **Voting**: Upvote/downvote on questions to highlight helpful content.\n\n👉 **View Counter**: Tracks the number of views for each question.\n\n👉 **Bookmarking**: Save questions for quick access later.\n\n👉 **Answer Posting**: MDX editor with light/dark modes for submitting answers.\n\n👉 **AI Answer Generation**: Get AI-generated responses to questions.\n\n👉 **Answer Filtering**: Sort answers by newest or most-voted, with pagination.\n\n👉 **Answer Voting**: Upvote/downvote answers to rank quality responses.\n\n👉 **Collections**: Organized saved questions with filters, search, and pagination.\n\n👉 **Community**: Browse all users with search, filters, and pagination.\n\n👉 **Profile**: View user info, badges, and engagement history with pagination.\n\n👉 **Job Finder**: Discover jobs with filters and search, tailored to the user’s location.\n\n👉 **Tags Page**: List of all tags with question counts, filters, and pagination.\n\n👉 **Tag Details**: View questions by tag with search and pagination.\n\n👉 **Ask a Question**: Simple interface for posting new questions.\n\n👉 **Edit \u0026 Delete**: Update or remove questions and answers with validation and authorization.\n\n👉 **Global Search**: Find content across questions, users, tags, and more.\n\n👉 **Responsive Design**: Fully optimized for a seamless experience on desktops, tablets, and mobile devices.\n\n👉 **High Performance**: Fast loading and smooth interactions for an efficient user experience.\n\nand many more, including code architecture and reusability\n\n## \u003ca name=\"quick-start\"\u003e🤸 Quick Start\u003c/a\u003e\n\nFollow these steps to set up the project locally on your machine.\n\n**Prerequisites**\n\nMake sure you have the following installed on your machine:\n\n- [Git](https://git-scm.com/)\n- [Node.js](https://nodejs.org/en)\n- [npm](https://www.npmjs.com/) (Node Package Manager)\n\n**Cloning the Repository**\n\n```bash\ngit clone https://github.com/JavaScript-Mastery-Pro/devflow-v2-record.git\ncd devflow-v2-record\n```\n\n**Installation**\n\nInstall the project dependencies using npm:\n\n```bash\nnpm install\n```\n\n**Set Up Environment Variables**\n\nCreate a new file named `.env` in the root of your project and add the following content:\n\n```env\n# Mongodb\nMONGODB_URI=\n\n# OpenAI\nOPENAI_API_KEY=\n\n# Rapid API\nNEXT_PUBLIC_RAPID_API_KEY=\n\n# Auth\nAUTH_GOOGLE_ID=\nAUTH_GOOGLE_SECRET=\nAUTH_GITHUB_ID=\nAUTH_GITHUB_SECRET=\nAUTH_SECRET=\nNEXTAUTH_URL=\n\n# Tiny Editor\nNEXT_PUBLIC_TINY_EDITOR_API_KEY=\n\nNEXT_PUBLIC_SERVER_URL=\n\nNODE_ENV=\n```\n\nReplace the placeholder values with your actual credentials. You can obtain these credentials by signing up on the respective websites\n\n**Running the Project**\n\n```bash\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser to view the project.\n\n## \u003ca name=\"links\"\u003e🔗 Assets\u003c/a\u003e\n\nAssets used in the project can be found [here](https://drive.google.com/file/d/1nBru53dqIY4__A_WsburhpdiWUbdbncY/view?usp=sharing)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianhajdin%2Fjsmasterypro_devflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianhajdin%2Fjsmasterypro_devflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianhajdin%2Fjsmasterypro_devflow/lists"}