From d9c4a9eb33ff7ce390b689a0790844ab8b261f5d Mon Sep 17 00:00:00 2001 From: procoder-ji <341535672+procoder-ji@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:51:03 +0530 Subject: [PATCH 1/3] docs: improve student roadmap and CI coverage --- .github/workflows/ci.yml | 23 +++++++++ CONTRIBUTING.md | 2 +- README.md | 101 ++++++++++++++++++--------------------- 3 files changed, 71 insertions(+), 55 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 90e1e48..028a8ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,3 +42,26 @@ jobs: - name: Production build run: npm run build + + site-quality: + name: Browser and SEO checks + runs-on: ubuntu-24.04 + timeout-minutes: 30 + steps: + - name: Check out repository + uses: actions/checkout@v7 + + - name: Set up Node.js + uses: actions/setup-node@v7 + with: + node-version: 24 + cache: npm + + - name: Install dependencies + run: npm ci + + - name: Check desktop and mobile browser behavior + run: npm run e2e + + - name: Crawl production build and verify SEO + run: npm run launch-check diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e4715f4..8e94f0f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ project, check a change and open a pull request. Use Node.js 22.18 or newer and npm: ```bash -git clone https://github.com/Coding-Professional/procoderji.git +git clone https://github.com/procoderji-com/procoderji.git cd procoderji npm ci npm run dev diff --git a/README.md b/README.md index b306851..3e5379c 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ # ProCoderJii Learning Hub -### A focused learning space for engineering students. +### Free learning resources and campus-placement practice for engineering students. -Browse course resources, learn from practical guides, explore career opportunities, and take a short break with free coding games. +Study, practise reasoning skills, and find practical guidance in one student-focused project. -[Visit the website](https://procoderji.com) · [Report a bug](https://github.com/Coding-Professional/procoderji/issues/new?template=bug_report.yml) · [Request a feature](https://github.com/Coding-Professional/procoderji/issues/new?template=feature_request.yml) +[Website](https://procoderji.com) · [Roadmap](https://github.com/procoderji-com/procoderji/issues/22) · [Report a bug](https://github.com/procoderji-com/procoderji/issues/new?template=bug_report.yml) · [Request a feature](https://github.com/procoderji-com/procoderji/issues/new?template=feature_request.yml) -[![CI](https://github.com/Coding-Professional/procoderji/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Coding-Professional/procoderji/actions/workflows/ci.yml) +[![CI](https://github.com/procoderji-com/procoderji/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/procoderji-com/procoderji/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Next.js](https://img.shields.io/badge/Next.js-16-black?logo=next.js)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?logo=typescript)](https://www.typescriptlang.org/) @@ -18,121 +18,114 @@ Browse course resources, learn from practical guides, explore career opportuniti > [!NOTE] -> The course browser is in place, but no course subjects or notes are published yet. Guides and job listings are also awaiting reviewed content. The two games are playable now. See [Current content](#current-content) for details. +> The course catalogue, guides, and job listings do not yet contain published resources. Pattern Sprint and Digit Recall are playable now. See [current content](#current-content) and the [roadmap](https://github.com/procoderji-com/procoderji/issues/22) for the project direction. ## Contents - [About](#about) -- [Features](#features) +- [What students can do](#what-students-can-do) - [Current content](#current-content) - [Getting started](#getting-started) -- [Commands](#commands) +- [Commands and CI](#commands-and-ci) - [Project structure](#project-structure) - [Contributing](#contributing) -- [Security and privacy](#security-and-privacy) +- [Privacy and safety](#privacy-and-safety) - [License and attributions](#license-and-attributions) ## About -ProCoderJii is a learning hub for engineering students. The project brings course material, practical learning guides, career listings, and small browser games together in one Next.js website. It is built to make useful, reviewed resources easier to browse and to give contributors a clear path for adding them. +ProCoderJii is a student-focused learning hub for engineering coursework and campus-placement preparation. The project aims to make useful, reviewed study resources easier to find and give students short, practical ways to practise skills. -The repository is organized for community contributions: start with the guides below, open an issue to discuss a larger change, and submit a pull request when you are ready. +The site is built with Next.js, React, TypeScript, Tailwind CSS, and MDX. It is a static content-driven app today: there are no user accounts or database, and game scores are not saved. Content is reviewed and registered in the project catalogues before it appears as a published resource. -## Features +## What students can do -- **Course browser:** organize learning material by course, branch, and semester. -- **Games:** Pattern Sprint and Digit Recall are free to play at [`/games`](https://procoderji.com/games). No login is required and scores are not saved between visits. -- **Guides and jobs:** curated sections for practical guides and career opportunities. Only reviewed entries are shown. -- **Optional video cards:** show recent videos from a public YouTube channel feed when configured. -- **Content validation:** validate Markdown and MDX content and prevent unsafe HTML from being rendered. -- **Responsive interface:** browse the site on desktop and mobile. +- **Browse coursework:** navigate course, branch, and semester pages. A page only becomes searchable when useful, reviewed content is published for it. +- **Practise placement skills:** play Pattern Sprint for number-pattern reasoning and Digit Recall for memory practice at [`/games`](https://procoderji.com/games). These are original practice exercises, not official employer assessments or promises of hiring outcomes. +- **Find practical guidance:** read reviewed study, career, and internship resources when they are published. +- **Use the site without an account:** practice is free, works in a browser, and does not save scores between visits. +- **Contribute:** help improve code, documentation, and original learning material through focused pull requests. -There are currently no user accounts, database, admin panel, PDF downloads, or chatbot. The contact form opens the visitor's email app; the site does not store submissions. +Latest-video cards are optional and use a public YouTube feed when configured. The contact form opens the visitor's email app; the site does not store submissions. ## Current content -| Section | Status | +| Area | Status | | --- | --- | -| Course browser | Course, branch, and semester navigation is available; no subjects or notes are published yet. | -| Games | Pattern Sprint and Digit Recall are playable without an account. | +| Course catalogue | Course, branch, and semester navigation exists; no subjects or notes are published yet. | +| Placement practice | Pattern Sprint and Digit Recall are playable without login; the placement-focused roadmap is in progress. | | Guides | No reviewed guides published yet. | -| Jobs | No reviewed listings published yet. | -| Videos | Optional; requires a public YouTube channel ID. | +| Jobs and internships | No reviewed listings published yet. | +| Latest videos | Optional; requires a public YouTube channel ID. | -Sample files under `src/content` are intentionally not registered as published notes. Please follow the [content guide](docs/content-guide.md) before adding learning material. +Sample files under `src/content` are intentionally not registered as published notes. Follow the [content guide](docs/content-guide.md) before adding learning material. ## Getting started ### Requirements -- Node.js 22.18 or newer for the full test suite (Node.js 24 is used in CI). -- npm. -- Google Chrome for browser tests. Microsoft Edge can be used with `E2E_CHANNEL=msedge`. - -Clone the repository and install its locked dependencies: +- Node.js 24 (the version used in CI). +- npm, included with Node.js. +- Google Chrome for browser checks; Microsoft Edge can be used locally with `E2E_CHANNEL=msedge`. ```bash -git clone https://github.com/Coding-Professional/procoderji.git +git clone https://github.com/procoderji-com/procoderji.git cd procoderji npm ci npm run dev ``` -Open . The site works without environment variables. To show recent videos locally, copy `.env.example` to `.env.local` and configure the public YouTube channel ID. - -### Environment +Open . The site works without environment variables. To enable latest-video cards locally, copy `.env.example` to `.env.local` and configure the public YouTube channel ID. | Variable | Required | Purpose | | --- | --- | --- | | `YOUTUBE_CHANNEL_ID` | No | Enables the latest-video section using the channel's public feed. | -| `NEXT_PUBLIC_SITE_URL` | No | Overrides the canonical site URL, such as for a staging deployment. | +| `NEXT_PUBLIC_SITE_URL` | No | Overrides the canonical site URL, for example in a staging deployment. | -See [deployment documentation](docs/deployment.md) for hosting and environment details. Never commit secrets or personal credentials. +See [deployment documentation](docs/deployment.md) for hosting details. Never commit secrets or private credentials. -## Commands +## Commands and CI | Command | Purpose | | --- | --- | | `npm run dev` | Start the local development server. | | `npm run lint` | Run ESLint. | | `npm run typecheck` | Check TypeScript types. | -| `npm test` | Run unit and content validation tests. | +| `npm test` | Run unit and content-validation tests. | | `npm run build` | Create the production build. | -| `npm run launch-check` | Build and crawl the site, checking links and SEO metadata. | -| `npm run e2e` | Run browser checks in Chrome on desktop and mobile. | +| `npm run e2e` | Build with temporary synthetic content and check browser behavior on desktop and mobile. | +| `npm run launch-check` | Build the real site and crawl links, sitemap, metadata, and SEO rules. | -Browser checks use temporary synthetic content and restore their fixtures when they exit. They refuse to run if `src/data` or `src/content` has local changes. The runner and fixtures are documented in [`e2e/run.mjs`](e2e/run.mjs) and the [`e2e/` directory](e2e/). +Pull requests run lint, type checks, unit tests, a production build, browser checks, and the production link/SEO crawl. The E2E runner refuses to run when `src/data` or `src/content` has local changes, then restores its fixtures when it exits. ## Project structure ```text -src/app/ Routes and page layouts (Next.js App Router) -src/components/ Shared UI and page sections +src/app/ Routes, layouts, metadata, sitemap, and robots rules +src/components/ Shared UI and landing-page sections src/content/ Markdown and MDX learning content src/data/ Course, guide, and job catalogues -src/lib/ Content validation, rendering, SEO, and game logic -e2e/ Browser tests, fixtures, and production crawl checks +src/lib/ Validation, rendering, SEO, and game logic +e2e/ Browser checks, fixtures, and production crawl docs/ Architecture, content, security, and deployment guides -.github/ CI workflow, issue forms, and pull-request template +.github/ CI, Dependabot, issue forms, and pull-request template .agents/ Optional coding-agent instructions .claude/ Pointers to canonical agent-tool documentation -seo/ Site-specific search and editorial planning notes +seo/ SEO notes and planning material ``` -For the system overview, read [Architecture](docs/architecture.md). To add or update published notes, read the [Content guide](docs/content-guide.md). +Start with [Architecture](docs/architecture.md), the [Content guide](docs/content-guide.md), or [Contributing](CONTRIBUTING.md). ## Contributing -Contributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. For larger changes, open an issue first so the scope can be discussed. Bug reports and feature ideas can use the repository's issue forms. +Please read [CONTRIBUTING.md](CONTRIBUTING.md) before opening a pull request. For larger changes, check existing issues and discuss the scope first. Bug reports and feature requests have dedicated issue forms. Contributors are expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md). -Contributors are expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md). Submit original learning content or link to official sources; do not copy notes, job descriptions, papers, or images without permission. +Learning material must be original or link to official sources. Do not copy notes, job descriptions, papers, or images without permission. Optional coding-agent tools and their upstream notices are documented in [docs/agent-tools.md](docs/agent-tools.md) and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). -## Security and privacy +## Privacy and safety -Please report vulnerabilities using the private reporting instructions in [SECURITY.md](SECURITY.md). The site's data handling is described in its [privacy policy](https://procoderji.com/privacy). For local setup and deployment, see [docs/deployment.md](docs/deployment.md). +Please report vulnerabilities using the private reporting instructions in [SECURITY.md](SECURITY.md). Read the site's [privacy policy](https://procoderji.com/privacy) for information about data handling. ## License and attributions -The project is available under the [MIT License](LICENSE). Optional coding-agent tools and their upstream license notices are documented in [docs/agent-tools.md](docs/agent-tools.md) and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). - -The `private` setting in `package.json` prevents publishing this app as an npm package; it does not control GitHub repository visibility. +The project is available under the [MIT License](LICENSE). Vendored agent tools retain their separate upstream notices; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). From c3a5c0cd8319ae61a65aa99aa3808e35856fa549 Mon Sep 17 00:00:00 2001 From: procoder-ji <341535672+procoder-ji@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:56:35 +0530 Subject: [PATCH 2/3] fix: remove missing dashboard background asset --- e2e/launch.mjs | 2 +- src/app/dashboard/layout.tsx | 18 ++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/e2e/launch.mjs b/e2e/launch.mjs index 6e4abda..c8d3d10 100644 --- a/e2e/launch.mjs +++ b/e2e/launch.mjs @@ -222,7 +222,7 @@ try { } if (home.headers.get("x-powered-by")) bad("/", `framework header is still sent: X-Powered-By: ${home.headers.get("x-powered-by")}`); // Removed template/unused files must not be served any more. - for (const p of ["/next.svg", "/vercel.svg", "/file.svg", "/globe.svg", "/window.svg", "/bg.png"]) { + for (const p of ["/next.svg", "/vercel.svg", "/file.svg", "/globe.svg", "/window.svg", "/bg.png", "/bg.jpg"]) { if ((await fetch(BASE + p)).status !== 404) bad(p, "unused file is still being served"); } diff --git a/src/app/dashboard/layout.tsx b/src/app/dashboard/layout.tsx index 97f7763..ab33597 100644 --- a/src/app/dashboard/layout.tsx +++ b/src/app/dashboard/layout.tsx @@ -1,5 +1,4 @@ import { DashboardClientLayout } from "./dashboard-layout-client"; -import Image from "next/image"; export default function DashboardLayout({ children, @@ -8,19 +7,10 @@ export default function DashboardLayout({ }) { return ( <> - {/* Background Image with Overlay */} -
- -
-
-
+