The definitive collaborative platform where Stack Overflow meets GitHub PRs.
Post your code, receive expert line-by-line reviews, and build your reputation as a Digital Architect.
CodeReview Hub is a full-stack web application that lets developers post their code snippets and receive structured, expert peer reviews β think of it as GitHub Pull Requests combined with Stack Overflow, but focused entirely on collaborative code quality improvement.
| Feature | Description |
|---|---|
| π Post Code | Share code snippets directly or upload a file. Tag with languages and topics. |
| π¬ Inline Comments | GitHub-style line-by-line commenting with drag-to-select line ranges. |
| β Peer Reviews | Full review system with markdown support β post, edit, delete, and accept reviews. |
| π Reputation System | Earn points when your reviews are accepted. Rise through architect levels. |
| π Browse & Filter | Infinite scroll post feed filterable by language, status (Open / Accepted / Closed), and sort order. |
| π¨ Syntax Highlighting | Beautiful code highlighting powered by Shiki with the Houston theme. |
| ποΈ Monaco Editor | VS Code's editor embedded for writing and editing code posts. |
| π Authentication | Email/password auth with Google OAuth, password reset via email, and JWT sessions via NextAuth. |
| πΌοΈ Profile | User dashboard with reputation score, level rank, review history, and comment history. |
| ποΈ File Storage | Large code files and profile images stored in MinIO (S3-compatible object storage). |
| π Legal Pages | Markdown-driven Terms & Privacy pages with SEO metadata. |
| πΊοΈ SEO | Auto-generated sitemap, robots.txt, Open Graph images, and Twitter cards per post. |
Make sure you have the following installed before getting started:
git clone https://github.com/PrathameshDhande22/CodeReviewHub.git
cd CodeReviewHub/my-appyarn installCopy the example environment file and fill in your values:
cp .env.example .envOpen .env and update the following:
# PostgreSQL β matches the docker-compose defaults
DATABASE_URL="postgresql://postgres:admin1234@localhost:5432/codereview?schema=public"
# NextAuth secret β generate with: openssl rand -base64 32
BETTER_AUTH_SECRET=your_random_secret_here
# Google OAuth (from Google Cloud Console)
AUTH_GOOGLE_ID=your_google_client_id
AUTH_GOOGLE_SECRET=your_google_client_secret
# MinIO (S3-compatible object storage)
MINIO_ACCESS_KEY=your_minio_access_key
MINIO_SECRET_KEY=your_minio_secret_key
MINIO_ENDPOINT=localhost
MINIO_PORT=9000
MINIO_USE_SSL=falseThe project uses Docker Compose to run PostgreSQL, pgAdmin, and MinIO locally.
See the Running with Docker Compose section below for details.
Generate the Prisma client and run migrations:
# Generate Prisma client types
yarn db:generate
# Apply database migrations
yarn db:migrateyarn devThe app will be available at http://localhost:3000.
The start-dockercompose.yaml file spins up all the required backend infrastructure services.
| Service | Container Name | Port | Description |
|---|---|---|---|
| PostgreSQL 18 | postgressql |
5432 |
Primary application database |
| pgAdmin 4 | pgadmin |
8081 |
Web-based PostgreSQL GUI |
| MinIO | minio-blobstorage |
9000 / 9001 |
S3-compatible object storage for code files & images |
docker compose -f start-dockercompose.yaml up -d# Option 1 β Using the built-in npm script
yarn podman
# Option 2 β Manual
podman machine start
podman compose -f start-dockercompose.yaml up -ddocker compose -f start-dockercompose.yaml down
# To also remove volumes (β οΈ deletes all data):
docker compose -f start-dockercompose.yaml down -v| Service | URL | Credentials |
|---|---|---|
| pgAdmin | http://localhost:8081 | Email: test@prathamesh.com / Password: test |
| MinIO Console | http://localhost:9001 | Configure via MinIO license & access keys |
| PostgreSQL | localhost:5432 |
User: postgres / Password: admin1234 |
MinIO Note: MinIO uses a license file located at
./minio/minio.license. You need a valid MinIO AIStor license for the configured image. For development without a license, you can swap the image tominio/minio:latestand update the command tominio server /mnt/data --console-address ":9001".
yarn buildyarn startThis project is licensed under the terms in the LICENSE file.
Built with β€οΈ by Prathamesh Dhande








