Skip to content

Dewanshakib/processi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ProcessI

Keep your developer interview process clean, organized, and trackable.

image alt

ProcessI is a developer interview tracking app built to solve the real problem of messy interview/application tracking across random notes, tabs, and spreadsheets.

🌐 Live Demo

Production URL: https://processi.vercel.app/


🎯 Core Purpose

Developers often lose visibility on:

  • where they applied,
  • which interview stage they are in,
  • upcoming deadlines,
  • and final outcomes.

ProcessI centralizes all of this in one workflow-first dashboard.


πŸ€– AI Enhancements (Extra Features)

The AI layer is intentionally an enhancement on top of the core tracker:

  • AI role/job suggestions based on profile + resume context
  • AI interview practice questions

The main product goal remains interview/application organization.


🌐 Project Context


✨ Key Features

Feature Description
Google OAuth Authentication Sign in with Google via Better Auth
Protected Dashboard Session-guarded dashboard routes
Kanban Interview Tracker Track applications by stage (Applied, Interview, Offer, Rejected)
Profile Management Maintain bio, stacks, experience, role preference
Resume Upload & Parsing Upload PDF resume and extract text for AI context
AI Role Analysis Match score, demand, salary range, strengths, and gaps
AI Interview Practice Generate 15-question category-based interview sets

πŸ› οΈ Tech Stack

Technology Usage
Next.js 16 (App Router) Full-stack framework
TypeScript + React 19 App development
Tailwind CSS v4 + shadcn/ui UI + styling
better-auth Google OAuth authentication
Prisma + PostgreSQL Data modeling and persistence
Vercel AI SDK + Google model integration AI features

πŸ“‚ Project Structure

app/
	page.tsx                          # Public home page
	(private)/dashboard/*             # Protected dashboard routes
	api/
		auth/[...all]/route.ts          # Better Auth handlers
		ai/insight/route.ts             # Role analysis endpoint
		ai/prep/route.ts                # Interview question generation
		upload/route.ts                 # Resume upload + PDF parsing

actions/
	action.job-application.ts         # Server actions for Kanban CRUD
	action.profile.ts                 # Server actions for profile

prisma/
	schema.prisma                     # DB schema
	migrations/                       # Migration history

utils/
	role-agent.ts                     # AI role suggestion pipeline
	question-agent.ts                 # AI question generation pipeline
	prompts.ts                        # Prompt templates

testsprite_tests/
	...                               # TestSprite plans, reports, and artifacts

πŸš€ Routes

Public

  • / β€” Landing page

Private

  • /dashboard β€” Overview and activity summary
  • /dashboard/kanban β€” Job application board
  • /dashboard/account β€” Profile + resume upload
  • /dashboard/ai-arena β€” AI tools landing
  • /dashboard/ai-arena/job-suggestions β€” AI role-fit analysis
  • /dashboard/ai-arena/ai-powered-interview β€” AI interview practice

πŸ”Œ API Endpoints

  • GET/POST /api/auth/[...all] β€” Better Auth endpoints
  • POST /api/upload β€” Upload + parse resume PDF, persist in profile
  • POST /api/ai/insight β€” Generate/store role-fit analysis
  • POST /api/ai/prep β€” Generate interview questions by category

πŸ—ƒοΈ Database Models (Prisma)

  • User, Session, Account, Verification
  • Profile (career profile + resume json)
  • JobApplication (Kanban entities)
  • Analysis, Role (AI analysis output)

Enums:

  • JobStatus: applied | interview | offer | rejected
  • WorkType: remote | onsite | hybrid
  • Demand: High | Medium | Growing | Low

βš™οΈ Environment Variables

Create a .env file using .sample.env:

# Database
DATABASE_URL=
DIRECT_URL=

# Better Auth
BETTER_AUTH_SECRET=
BETTER_AUTH_URL=http://localhost:3000
NEXT_PUBLIC_BETTER_AUTH_URL=http://localhost:3000

# Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# AI Provider
GOOGLE_GENERATIVE_AI_API_KEY=

DATABASE_URL is used by runtime Prisma adapter, while DIRECT_URL is used for Prisma migration/config workflows.


🏁 How to Run Locally

  1. Install dependencies
pnpm install
  1. Configure environment
  • Copy .sample.env to .env
  • Fill all required secrets/URLs
  1. Run database migrations
pnpm prisma migrate dev
  1. Start app
pnpm dev

Open: http://localhost:3000


πŸ§ͺ Testing

This project uses TestSprite MCP for AI-assisted test planning/reporting as part of the hackathon workflow.

Artifacts available in this repository:

  • testsprite_tests/tmp/raw_report.md
  • testsprite_tests/testsprite-mcp-test-report.md
  • testsprite_tests/testsprite_frontend_test_plan.json

Coverage focus areas include:

  • authentication and protected-route access
  • dashboard/kanban navigation flows
  • profile and upload flows
  • AI role analysis and interview practice flows

Notes:

  • The app is Google OAuth-first (no local email/password UI flow).
  • Test plans should be aligned with OAuth-based auth behavior.

πŸ“¦ Production Commands

pnpm build
pnpm start

πŸ” Authentication Notes

  • Sign-in is Google OAuth only.
  • Access control is enforced in both:
    • dashboard layout server checks, and
    • proxy.ts route middleware logic.

🧠 AI Flow Summary

Role Fit Analysis (/api/ai/insight)

  1. Read user profile + resume context from DB
  2. Send payload to AI role agent
  3. Upsert Analysis
  4. Replace related Role rows with fresh output

Interview Prep (/api/ai/prep)

  1. Accept category list
  2. Enforce per-client cooldown (5 minutes)
  3. Generate 15 MCQ questions
  4. Return normalized payload to UI

⚠️ Current Constraints / Behaviors

  • Resume upload endpoint currently accepts PDF only.
  • Interview question generation has a 5-minute cooldown.
  • No built-in local email/password sign-in flow (OAuth-first).

πŸ‘¨β€πŸ’» Author

Built solo by the project author for TestSprite Hackathon.


πŸ“œ License & Copyright

MIT License.

Β© 2026 ProcessI. All rights reserved by the author under the project license terms.

About

ProcessI is a interview tracking app that organizes applications in a Kanban workflow and adds AI-powered role suggestions and interview practice for smarter job preparation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors