The platform built for CS developers to submit graduation projects, find open-source contributors, and get discovered by top tech recruiters.
- Submit graduation projects, Hackathon entries, and personal builds
- Rich Markdown editor for detailed project descriptions
- 3-level cascading classification by Domain โ Specialization โ Tech Stack
- Full Light / Dark Mode support
- View tracking with cookie-based spam prevention
- Share your profile with a single click via ShareProfileButton
- Advanced search with Cascading Filters (University โ Domain โ Tech)
- Sort by latest, most upvoted, or most viewed
- Dedicated
/projectslisting page with full filter support
- Apply to join any open-source project directly from the platform
- Full Join Request system with automatic email notifications via Resend
- Accept / Reject requests with optional rejection reason sent to the applicant
- Contributors list displayed on project detail pages
- Global ranking with a stunning 3D Podium UI
- Filter by global or by university
- Ranked by total Upvotes
- Browse developer profiles with real-time GitHub stats
- Dynamic filters to find the right collaborator
- Recruitment cards with a Radar UI design
- Overview stats for your projects (views, upvotes, requests)
- Manage your projects with optimistic deletion
- Handle incoming join requests with accept / reject actions
- Full profile settings with instant session sync
- Full support for Arabic and English
- Automatic RTL layout switching for Arabic
- Complete translation coverage across all pages and components
- Sign in with GitHub OAuth or Google OAuth
- Secure Onboarding flow with middleware protection
- Rate Limiting on all API routes
- Comprehensive HTTP Security Headers
- Route protection via Middleware
- Full Sentry integration for Error Tracking and Session Replay
- Built-in Feedback Widget for user bug reports
- PWA Support โ installable on mobile devices
- Auto-generated Sitemap for Google Search Console
- Suspense Streaming for instant page loads
- Prefetching on all static and dynamic navigation links
- Full MDX-powered Docs with search
- Bilingual docs (Arabic & English) with automatic locale detection
- Interactive sidebar with GitHub edit links
- Last updated timestamps and frontmatter support
- Dedicated page showcasing open-source projects
- Real-time GitHub stats per project
- Contributors section per project
- Cosmic timeline UI for platform update history
- Full multilingual support
| Technology | Version | Usage |
|---|---|---|
| Next.js | 16.x | App Router, Server Components, Streaming |
| React | 19.x | UI Framework |
| TypeScript | 5.x | Type Safety |
| Tailwind CSS | 3.x | Styling |
| Sanity CMS | 3.x | Database & Content Management |
| NextAuth.js | 5.x Beta | Authentication |
| Framer Motion | 12.x | Animations |
| next-intl | 4.x | Internationalization (i18n) |
| Sentry | 10.x | Error Tracking & Session Replay |
| Resend | 6.x | Transactional Emails |
| Zod | โ | Schema Validation |
| shadcn/ui | โ | UI Components |
| Vercel | โ | Deployment |
CS-Arena/
โโโ app/
โ โโโ (root)/
โ โ โโโ about/
โ โ โโโ blog/
โ โ โโโ coming-soon/
โ โ โโโ cookies/
โ โ โโโ dashboard/
โ โ โโโ developers/
โ โ โโโ docs/
โ โ โ โโโ [...slug]/
โ โ โโโ leaderboard/
โ โ โโโ onboarding/
โ โ โโโ open-source/
โ โ โโโ privacy/
โ โ โโโ project/
โ โ โ โโโ [id]/
โ โ โ โ โโโ edit/
โ โ โ โโโ create/
โ โ โโโ projects/
โ โ โโโ terms/
โ โ โโโ user/[id]/
โ โ โโโ layout.tsx
โ โ โโโ page.tsx
โ โโโ api/
โ โ โโโ docs-search/
โ โโโ studio/[[...tool]]/
โ โโโ global-error.tsx
โ โโโ layout.tsx
โ โโโ not-found.tsx
โ โโโ sitemap.ts
โโโ components/
โ โโโ dashboard/
โ โ โโโ ManageProjects.tsx
โ โ โโโ ProfileSettings.tsx
โ โ โโโ ProjectRequests.tsx
โ โโโ docs/
โ โ โโโ DocsFeedback.tsx
โ โ โโโ DocsSidebar.tsx
โ โโโ layout/
โ โ โโโ Footer.tsx
โ โ โโโ Navbar.tsx
โ โโโ project/
โ โ โโโ ContributorsSection.tsx
โ โ โโโ EditProjectForm.tsx
โ โ โโโ ProjectCard.tsx
โ โ โโโ ProjectFilters.tsx
โ โ โโโ ProjectForm.tsx
โ โ โโโ TeamFilters.tsx
โ โ โโโ UpvoteButton.tsx
โ โ โโโ UserProjects.tsx
โ โโโ shadcn/
โ โ โโโ avatar.tsx
โ โ โโโ button.tsx
โ โ โโโ input.tsx
โ โ โโโ skeleton.tsx
โ โ โโโ textarea.tsx
โ โ โโโ toast.tsx
โ โ โโโ toaster.tsx
โ โโโ shared/
โ โโโ CustomFilterSelect.tsx
โ โโโ FeedbackButton.tsx
โ โโโ GithubStats.tsx
โ โโโ HeroSection.tsx
โ โโโ JoinTeamButton.tsx
โ โโโ LanguageToggle.tsx
โ โโโ MobileMenu.tsx
โ โโโ OnboardingForm.tsx
โ โโโ Ping.tsx
โ โโโ PolicySections.tsx
โ โโโ ProjectsGrid.tsx
โ โโโ Providers.tsx
โ โโโ SearchForm.tsx
โ โโโ SearchFormReset.tsx
โ โโโ ShareProfileButton.tsx
โ โโโ TechFilters.tsx
โ โโโ ThemeToggle.tsx
โ โโโ View.tsx
โ โโโ ViewTracker.tsx
โโโ config/
โ โโโ docs.ts
โโโ constants/
โ โโโ ecosystem.ts
โโโ content/
โ โโโ docs/
โ โโโ contributing/
โ โ โโโ guidelines.ar.mdx
โ โ โโโ guidelines.en.mdx
โ โ โโโ setup.ar.mdx
โ โ โโโ setup.en.mdx
โ โโโ getting-started/
โ โ โโโ introduction.ar.mdx
โ โ โโโ introduction.en.mdx
โ โ โโโ quick-start.ar.mdx
โ โ โโโ quick-start.en.mdx
โ โโโ user-guide/
โ โโโ find-developers.ar.mdx
โ โโโ find-developers.en.mdx
โ โโโ projects.ar.mdx
โ โโโ projects.en.mdx
โโโ hooks/
โ โโโ use-toast.ts
โโโ i18n/
โ โโโ request.ts
โโโ lib/
โ โโโ actions.ts
โ โโโ docs.ts
โ โโโ utils.ts
โโโ messages/
โ โโโ ar.json
โ โโโ en.json
โโโ public/
โ โโโ cs-arena-logo.png
โ โโโ cs-arena-logo-192.png
โ โโโ cs-arena-logo-512.png
โ โโโ manifest.json
โโโ sanity/
โ โโโ lib/
โ โ โโโ client.ts
โ โ โโโ live.ts
โ โ โโโ queries.ts
โ โ โโโ write-client.ts
โ โโโ schemaTypes/
โ โโโ author.ts
โ โโโ changelog.ts
โ โโโ domain.ts
โ โโโ index.ts
โ โโโ joinRequest.ts
โ โโโ project.ts
โ โโโ university.ts
โโโ auth.ts
โโโ middleware.ts
โโโ instrumentation.ts
โโโ sentry.client.config.ts
โโโ sentry.edge.config.ts
โโโ sentry.server.config.ts
โโโ next.config.ts
โโโ tailwind.config.ts
โโโ tsconfig.json
| Route | Description |
|---|---|
/ |
Home โ search and discover projects |
/project/create |
Submit a new project |
/project/[id] |
Project details |
/project/[id]/edit |
Edit your project |
/projects |
All projects listing |
/leaderboard |
Top projects with 3D Podium UI |
/open-source |
Hall of Fame for open-source projects |
/developers |
Browse developer profiles |
/user/[id] |
Developer public profile |
/dashboard |
User dashboard & settings |
/onboarding |
New user setup flow |
/docs |
Full documentation system (MDX) |
/docs/[...slug] |
Individual documentation pages |
/changelog |
Platform update history |
/about |
About CS Arena |
/privacy |
Privacy policy |
/terms |
Terms of service |
/cookies |
Cookie policy |
/blog |
Blog (coming soon) |
/studio |
Sanity CMS dashboard |
- Node.js 18+
- npm 10+
- Sanity account
- GitHub OAuth App
- Google OAuth App
# 1. Clone the repository
git clone https://github.com/Ali-Haggag7/CS-Arena.git
cd CS-Arena
# 2. Install dependencies
npm install
# 3. Set up environment variables
cp .env.example .env.local# Auth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_secret
# GitHub OAuth
AUTH_GITHUB_ID=your_github_client_id
AUTH_GITHUB_SECRET=your_github_client_secret
# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Sanity CMS
NEXT_PUBLIC_SANITY_PROJECT_ID=your_project_id
NEXT_PUBLIC_SANITY_DATASET=production
SANITY_WRITE_TOKEN=your_write_token
# Sentry
SENTRY_AUTH_TOKEN=your_sentry_token
# Resend (Email)
RESEND_API_KEY=your_resend_key
# App
NEXT_PUBLIC_BASE_URL=http://localhost:3000# 4. Start the development server
npm run devOpen http://localhost:3000 in your browser.
Access the CMS dashboard locally at:
http://localhost:3000/studio
Contributions are welcome! Please read the Contributing Guidelines before getting started.
# Create a new branch
git checkout -b feat/your-feature-name
# After making your changes
git commit -m "feat: add your feature"
git push origin feat/your-feature-nameLook for issues tagged good first issue โ that's the best place to start!
MIT License โ feel free to use and modify.
Built with โค๏ธ by Ali Haggag
โญ If you find this project useful, please consider giving it a star!