{"id":24110212,"url":"https://github.com/ericgitangu/deveric-nextjs-15-scafold-app","last_synced_at":"2026-04-12T13:34:10.391Z","repository":{"id":271855648,"uuid":"914776420","full_name":"ericgitangu/deveric-nextjs-15-scafold-app","owner":"ericgitangu","description":"An end-to-end app generated by the script in the link in this description","archived":false,"fork":false,"pushed_at":"2025-01-15T20:00:28.000Z","size":168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T11:45:53.550Z","etag":null,"topics":["bash","cypress","jest","mocha","next15","react19","trpc"],"latest_commit_sha":null,"homepage":"https://github.com/ericgitangu/devops","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ericgitangu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2025-01-10T09:32:09.000Z","updated_at":"2025-01-15T20:00:29.000Z","dependencies_parsed_at":"2025-01-10T11:02:05.956Z","dependency_job_id":null,"html_url":"https://github.com/ericgitangu/deveric-nextjs-15-scafold-app","commit_stats":null,"previous_names":["ericgitangu/deveric-nextjs-15-scafold-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ericgitangu/deveric-nextjs-15-scafold-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericgitangu%2Fdeveric-nextjs-15-scafold-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericgitangu%2Fdeveric-nextjs-15-scafold-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericgitangu%2Fdeveric-nextjs-15-scafold-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericgitangu%2Fdeveric-nextjs-15-scafold-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericgitangu","download_url":"https://codeload.github.com/ericgitangu/deveric-nextjs-15-scafold-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericgitangu%2Fdeveric-nextjs-15-scafold-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015058,"owners_count":26085643,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["bash","cypress","jest","mocha","next15","react19","trpc"],"created_at":"2025-01-11T01:13:00.341Z","updated_at":"2025-10-13T12:38:08.397Z","avatar_url":"https://github.com/ericgitangu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦄 deveric-nextjs-15-scaffold-app\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](#contributing)\n[![Jest](https://img.shields.io/badge/Test-Jest-blue.svg)](#testing)\n[![Mocha](https://img.shields.io/badge/Test-Mocha-red.svg)](#testing)\n[![Cypress](https://img.shields.io/badge/Test-Cypress-orange.svg)](#testing)\n\n![Next.js Logo](https://nextjs.org/static/favicon/favicon-16x16.png)\n\n## 📚 Table of Contents\n\n- [✨ Scaffolding Instructions](#-scaffolding-instructions)\n- [📝 Description](#-description)\n- [🔧 Installation](#-installation)\n- [🚀 Usage](#-usage)\n- [🧪 Testing](#-testing)\n  - [Unit Tests (Jest)](#unit-tests-jest)\n  - [Integration Tests (Mocha)](#integration-tests-mocha)\n  - [End-to-End Tests (Cypress)](#end-to-end-tests-cypress)\n- [🎉 Features](#-features)\n- [🧰 Additional Resources](#-additional-resources)\n- [🤝 Contributing](#-contributing)\n- [📄 License](#-license)\n- [📬 Contact](#-contact)\n- [🏗️ Project Structure](#-project-structure)\n- [📈 Deployment](#-deployment)\n- [🧩 Integrations](#-integrations)\n- [🛡️ Security](#-security)\n- [📦 Packaging](#-packaging)\n- [🧹 Maintenance](#-maintenance)\n- [📚 References](#-references)\n- [👨‍💻 Maintainer](#-maintainer)\n\n## ✨ Scaffolding Instructions\n\nWelcome to the **deveric-nextjs-15-scafold-app**! This project was automatically generated using our custom scaffolding script, designed to streamline the setup process for a robust Next.js application integrated with modern technologies. Below are the detailed steps and capabilities of the script:\n\n### 🛠️ Prerequisites\n\nBefore running the scaffolding script, ensure you have the following installed on your system:\n\n- **Node.js** (v18.x or later)\n- **Yarn** (v1.22.22) or **npm** (v7.x or later) or **pnpm** (v6.x or later)\n- **Git**\n- **jq** (for JSON processing)\n\n### 📜 Running the App Generated from the Scaffolding Script\n\n1. **Make the Script Executable:**\n\n   If the script isn't already executable, grant execute permissions:\n\n   ```bash\n   chmod +x next-app.sh\n   ```\n\n2. **Run the Setup Script:**\n\n   ```bash\n   ./next-app.sh\n   ```\n\n   **What the Script Does:**\n\n   - **Scaffolds a Next.js 15 Application:** Initializes a Next.js project with the App Router using a specific version of \\`create-next-app\\` to ensure compatibility.\n   - **Configures React 19:** Implicitly installs React and React-DOM at version 19 to maintain consistency and avoid multiple React instances using the npx create-next-app command.\n   - **Installs Major Dependencies:** Adds essential packages such as tRPC, React Query, Prisma, Material UI (with dark mode), NextAuth, and more, ensuring they are compatible with React 19.\n   - **Sets Up Development Tools:** Installs development dependencies including TypeScript, ESLint, Prettier, Tailwind CSS, and others for a seamless development experience.\n   - **Enforces Single React Version:** Utilizes package manager-specific configurations (\\`resolutions\\` for Yarn, \\`overrides\\` for pnpm/npm) to ensure only one instance of React is used across all dependencies.\n   - **Deduplicates Dependencies:** Runs deduplication processes to eliminate redundant packages, preventing potential conflicts.\n   - **Creates Project Structure:** Sets up necessary folders, hooks, providers, and configuration files.\n   - **Generates a Comprehensive README:** Automatically creates a detailed \\`README.md\\` capturing all aspects of the project setup.\n   - **Creates CONTRIBUTING.md \u0026 CODE_OF_CONDUCT.md:** Automatically creates detailed \\`CONTRIBUTING.md\\` \u0026 \\`CODE_OF_CONDUCT.md\\` files.\n   - **Creates .gitignore:** Automatically creates a detailed \\`.gitignore\\` file.\n   - **Creates LICENSE:** Automatically creates a detailed \\`LICENSE\\` file.\n   - **Creates tsconfig.json:** Automatically creates a detailed \\`tsconfig.json\\` file.\n   - **Creates next-seo.config.ts:** Automatically creates a detailed \\`next-seo.config.ts\\` file with aliases configured.\n   - **Creates jest.config.js:** Automatically creates a detailed \\`jest.config.js\\` file.\n   - **Creates jest.setup.js:** Automatically creates a detailed \\`jest.setup.js\\` file.\n   - **Creates mocha.config.js:** Automatically creates a detailed \\`mocha.config.js\\` file.\n   - **Creates mocha.opts:** Automatically creates a detailed \\`mocha.opts\\` file.\n   - **Creates cypress/e2e/example.cy.ts:** Automatically creates a detailed \\`cypress/e2e/example.cy.ts\\` file.\n   - **Creates tests/unit/example.test.ts:** Automatically creates a detailed \\`tests/unit/example.test.ts\\` file.\n   - **Creates tests/integration/example.test.ts:** Automatically creates a detailed \\`tests/integration/example.test.ts\\` file.\n   - **Creates pages.tsx and layout.tsx:** Automatically creates detailed \\`pages.tsx\\` \u0026 \\`layout.tsx\\` files with the relevant providers session, auth, trpc, theme, etc.\n   - **Creates globals.css:** Automatically creates a detailed \\`globals.css\\` file.\n   - **Creates prisma/schema.prisma:** Automatically creates a detailed \\`prisma/schema.prisma\\` file.\n   - **Creates public/og-image.png:** Automatically creates a detailed \\`public/og-image.png\\` file.\n   - **Creates scripts/setup.sh:** Automatically creates a detailed \\`scripts/setup.sh\\` file.\n   - **Creates package.json:** Automatically creates a detailed \\`package.json\\` file.\n   - **Creates README.md:** Automatically creates a detailed \\`README.md\\` file.\n   - **Creates components, context, hooks, providers, utils, etc:** Automatically creates detailed \\`components, context, hooks, providers, utils, etc.\\` files with some pre-configured examples.\n\n### ⚙️ Customizing the Script\n\nThe scaffolding script is designed to be flexible. You can adjust variables such as:\n\n- **`PROJECT_NAME`**: Change the default project name.\n- **`PKG_MGR`**: Switch between \\`yarn\\`, \\`npm\\`, or \\`pnpm\\` based on your preference.\n- **`AUTHOR_NAME`**, **`AUTHOR_EMAIL`**, **`AUTHOR_URL`**: Update contact information in the README.\n\nFeel free to modify the script (\\`setup.sh\\`) to suit your project's specific needs.\n\n---\n\n## 📝 Description\n\nA **Next.js 15 (App Router)** project with **TypeScript**, **dark-mode** **Material UI**, **tRPC**, **NextAuth**, and **Prisma**. This application is designed to provide a scalable and maintainable foundation for modern web development, leveraging powerful tools and best practices.\n\n---\n\n## 🔧 Installation\n\nClone the repository and install the dependencies using your preferred package manager (if you wish to modify the generated app directly, **it's recommended you use the script to set your preferences**).\n\n```bash\ngit clone https://github.com/EricGitangu/deveric-nextjs-15-scafold-app.git\ncd deveric-nextjs-15-scafold-app\nyarn install\n```\n\n\u003e **Note:** Replace \\`yarn install\\` with \\`npm install\\` or \\`pnpm install\\` if you're using a different package manager.\n\n---\n\n## 🚀 Usage\n\nStart the development server and navigate to [http://localhost:3000](http://localhost:3000) to view the application.\n\n```bash\nyarn dev\n```\n\n\u003e **Note:** Replace \\`yarn dev\\` with \\`npm run dev\\` or \\`pnpm dev\\` based on your package manager.\n\n---\n\n## 🧪 Testing\n\nThis project includes a comprehensive testing setup covering unit, integration, and end-to-end tests. Assuming yarn as our package manager but pnpm \u0026 npm support available).\n\n### Unit Tests (Jest)\n\nRun unit tests to ensure individual components and functions work as expected.\n\n```bash\nyarn test\n```\n\n### Integration Tests (Mocha)\n\nExecute integration tests to validate the interactions between different parts of the application.\n\n```bash\nyarn test:integration\n```\n\n### End-to-End Tests (Cypress)\n\nLaunch Cypress to perform end-to-end testing, simulating real user interactions.\n\n```bash\nyarn cypress:open\n```\n\n\u003e **Note:** Ensure the development server is running before executing end-to-end tests.\n\n---\n\n## 🎉 Features\n\n- **Next.js 15 (App Router):** Leverage the latest features of Next.js for building scalable applications.\n- **TypeScript:** Enjoy type safety and enhanced developer experience with TypeScript integration.\n- **Material UI with Dark Mode:** Implement sleek and responsive UI components with built-in dark mode support.\n- **tRPC:** Build end-to-end type-safe APIs effortlessly.\n- **NextAuth:** Secure and flexible authentication solutions.\n- **Prisma:** Robust database ORM for seamless data management.\n- **Tailwind CSS:** Utility-first CSS framework for rapid UI development.\n- **ESLint \u0026 Prettier:** Maintain code quality and consistency with automated linting and formatting.\n- **Turbopack:** Utilize the high-performance bundler for optimized builds.\n- **Comprehensive Testing:** Ensure application reliability with Jest, Mocha, and Cypress integrations.\n\n---\n\n## 🧰 Additional Resources\n\n- **[Next.js Documentation](https://nextjs.org/docs)**\n- **[Material UI Documentation](https://mui.com/getting-started/installation/)**\n- **[tRPC Documentation](https://trpc.io/docs)**\n- **[Prisma Documentation](https://www.prisma.io/docs/)**\n- **[NextAuth.js Documentation](https://next-auth.js.org/getting-started/introduction)**\n- **[Tailwind CSS Documentation](https://tailwindcss.com/docs)**\n- **[Jest Documentation](https://jestjs.io/docs/getting-started)**\n- **[Mocha Documentation](https://mochajs.org/#getting-started)**\n- **[Cypress Documentation](https://docs.cypress.io/guides/overview/why-cypress)**\n- **[Turbopack Documentation](https://turbopack.dev/docs/introduction)**\n- **[Yarn Resolutions](https://classic.yarnpkg.com/en/docs/selective-version-resolutions/)**\n- **[pnpm Overrides](https://pnpm.io/cli/package-overrides)**\n- **[npm Overrides](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides)**\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on how to contribute to this project.\n\n---\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## 📬 Contact\n\n**Author:** Eric Gitangu  \n**Email:** [developer@ericgitangu.com](mailto:developer@ericgitangu.com)  \n**Website:** [https://https://developer.ericgitangu.com](https://https://developer.ericgitangu.com)  \n**GitHub:** [EricGitangu](https://github.com/EricGitangu)\n\n---\n\n## 🧪 Testing Instructions\n\nEnsure all tests pass to maintain code integrity and reliability.\n\n### Running All Tests\n\n```bash\nyarn test\n```\n\n### Running Unit Tests Only\n\n```bash\nyarn test:unit\n```\n\n### Running Integration Tests Only\n\n```bash\nyarn test:integration\n```\n\n### Running End-to-End Tests Only\n\n```bash\nyarn cypress:open\n```\n\n---\n\n## 🏗️ Project Structure\n\n```\ndeveric-nextjs-15-scafold-app/\n├── app/\n│   ├── components/\n│   │   └── SEO.tsx\n│   ├── hooks/\n│   │   ├── useTRPC.ts\n│   │   └── useTheme.ts\n│   ├── providers/\n│   │   └── TrpcProvider.tsx\n│   ├── layout.tsx\n│   ├── page.tsx\n│   └── globals.css\n├── prisma/\n│   └── schema.prisma\n├── public/\n│   └── og-image.png\n├── scripts/\n│   └── setup.sh\n├── .eslintrc.js\n├── .prettierrc\n├── next.config.js\n├── tailwind.config.js\n├── tsconfig.json\n├── package.json\n├── README.md\n└── LICENSE\n```\n\n\u003e **Note:** This structure may vary based on your project's specific needs.\n\n---\n\n## 📈 Deployment\n\n1. **Push to GitHub:**\n   \u003e **Note:** This script does the initial commit. Create your repo first, e.g, github.com/{AUTHOR_NAME}/{PROJECT_NAME}. Ensure SSH key is added to GitHub and locally ~/.ssh/id_rsa.pub for pull/push access.\n   ```bash\n   git remote add origin https://github.com/Eric Gitangu/deveric-nextjs-15-scafold-app.git\n   git branch -M main\n   git push -u origin main\n   ```\n\n2. **Connect to Vercel:**\n\n   - Visit [Vercel](https://vercel.com/) and sign in.\n   - Import your GitHub repository.\n   - Follow the prompts to deploy.\n\n\u003e **Tip:** Ensure environment variables and secrets are correctly configured in your deployment platform for OAuth and next-auth.\n\n---\n\n## 🧩 Integrations\n\n- **tRPC:** For building type-safe APIs without the need for a schema or code generation.\n- **Prisma:** Simplifies database management with an intuitive ORM.\n- **NextAuth:** Provides authentication solutions with support for multiple providers.\n- **Material UI:** Offers a comprehensive suite of UI components with theming capabilities.\n- **Tailwind CSS:** Enables rapid UI development with utility-first CSS.\n- **ESLint \u0026 Prettier:** Ensures code quality and consistency across the codebase.\n- **Turbopack:** Enhances build performance with an advanced bundler.\n\n---\n\n## 🛡️ Security\n\n- **Dependencies:** Regularly update dependencies to patch known vulnerabilities.\n- **Environment Variables:** Securely manage sensitive information using environment variables.\n- **Authentication:** Utilize robust authentication mechanisms provided by NextAuth.\n- **Dependabot:** Consider using Dependabot to automatically monitor your dependencies.\n- **GitHub Actions:** Consider using GitHub Actions for CI/CD and security monitoring.\n\n---\n\n## 📦 Packaging\n\n- **Build Scripts:** Customize build processes in `package.json` as needed.\n- **Optimizations:** Leverage Next.js and Turbopack optimizations for production-ready builds.\n\n---\n\n## 🧹 Maintenance\n\n- **Regular Updates:** Keep dependencies and tools up-to-date.\n- **Code Reviews:** Implement a code review process to maintain code quality.\n- **Documentation:** Continuously update documentation to reflect changes.\n\n---\n\n## 📚 References\n\n\u003e **Note**: Tested with React 19, React-DOM 19 \u0026 Next.js 15.\n\n- **[Next.js 15 Documentation](https://nextjs.org/docs/app)**\n- **[React 19 Documentation](https://react.dev/reference/react)**\n- **[React-DOM 19 Documentation](https://react.dev/reference/react-dom)**\n- **[Material UI Documentation](https://mui.com/getting-started/installation/)**\n- **[tRPC Documentation](https://trpc.io/docs)**\n- **[Prisma Documentation](https://www.prisma.io/docs/)**\n- **[NextAuth.js Documentation](https://next-auth.js.org/getting-started/introduction)**\n\n---\n\n## 👨‍💻 Maintainer\n\n- 👤 **Name:** Eric Gitangu\n- 📧 **Email:** [developer@ericgitangu.com](mailto:developer@ericgitangu.com)\n- 🌐 **Website:** [https://developer.ericgitangu.com](https://developer.ericgitangu.com)\n- 🐙 **GitHub:** [EricGitangu](https://github.com/EricGitangu)\n- 💼 **LinkedIn:** [linkedin.com/in/ericgitangu](https://linkedin.com/in/ericgitangu)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericgitangu%2Fdeveric-nextjs-15-scafold-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericgitangu%2Fdeveric-nextjs-15-scafold-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericgitangu%2Fdeveric-nextjs-15-scafold-app/lists"}