Project Stack is a collaborative platform designed for students and developers to discover, create, and contribute to projects. Whether you're looking to build your portfolio, find team members, or collaborate on exciting ideas, Project Stack provides all the tools you need.
- Project Discovery: Browse and search through active projects
- Smart Matching: Find projects that match your skills
- Team Collaboration: Apply to projects and manage contributors
- Rich Profiles: Showcase your skills, bio, and academic background
- Real-time Updates: Get notified about project applications and updates
- OAuth integration with Google and GitHub
- Secure session management with NextAuth.js
- Protected routes and API endpoints
- Complete onboarding flow with step-by-step guidance
- Searchable college selection (command palette)
- Skills management with predefined categories
- Profile customization (bio, avatar, academic details)
- Create and publish projects with detailed descriptions
- Project status tracking (Planning, Active, Completed)
- GitHub integration for repository links
- Tech stack visualization
- Like and bookmark functionality
- Application system for joining projects
- Contributor management
- Notification system for updates
- Application status tracking (Pending, Accepted, Rejected)
- Beautiful glassmorphic design
- Dark/Light theme support
- Smooth animations with Framer Motion and GSAP
- 3D visual effects with Three.js and React Three Fiber
- Responsive design for all devices
- Framework: Next.js 15.5.4 (App Router)
- UI Library: React 19.1.0
- Language: TypeScript 5.x
- Styling: Tailwind CSS 4.x
- Components: Radix UI primitives
- Animations: Framer Motion, GSAP
- 3D Graphics: Three.js, React Three Fiber
- Icons: Lucide React
- Forms: React Hook Form + Zod validation
- Database: PostgreSQL
- ORM: Prisma 6.19.0
- Authentication: NextAuth.js v4
- API: Next.js API Routes
- HTTP Client: Axios
- Linting: ESLint
- Package Manager: npm
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn or pnpm or bun
- PostgreSQL database (local or cloud)
- Google OAuth App (for Google login)
- GitHub OAuth App (for GitHub login)
-
Clone the repository
git clone https://github.com/Ajiet-DevNation/project_stack.git cd project_stack -
Install dependencies
npm install # or yarn install # or pnpm install # or bun install
-
Set up environment variables
Copy the sample environment file:
cp .env.sample .env.local
Create a .env.local file in the root directory and add the following variables:
# NextAuth Configuration
AUTH_SECRET="your-random-secret-key"
NEXTAUTH_URL="http://localhost:3000"
# 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"
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/project_stack"Google OAuth:
- Go to Google Cloud Console
- Create a new project or select existing one
- Enable Google+ API
- Create OAuth 2.0 credentials
- Add authorized redirect URI:
http://localhost:3000/api/auth/callback/google
GitHub OAuth:
- Go to GitHub Developer Settings
- Create a new OAuth App
- Add callback URL:
http://localhost:3000/api/auth/callback/github
-
Generate Prisma Client
npx prisma generate
-
Run database migrations
npx prisma migrate dev
-
Seed the database (optional)
npx prisma db seed
-
Open Prisma Studio (to view/edit data)
npx prisma studio
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 in your browser to see the application.
project_stack/
βββ src/
β βββ app/ # Next.js app directory
β β βββ (auth)/ # Authentication routes
β β β βββ onboarding/ # Onboarding flow
β β βββ (user)/ # Protected user routes
β β β βββ home/ # Home dashboard
β β β βββ profile/ # User profiles
β β β βββ projects/ # Project pages
β β βββ api/ # API routes
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Landing page
β βββ components/ # React components
β β βββ ui/ # UI primitives
β βββ lib/ # Utility functions
β β βββ college.ts # College list
β β βββ skills.ts # Skills categories
β β βββ validations/ # Zod schemas
β βββ providers/ # Context providers
β βββ types/ # TypeScript types
βββ prisma/
β βββ schema.prisma # Database schema
βββ public/ # Static assets
βββ package.json
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Build for production |
npm start |
Start production server |
npm run lint |
Run ESLint |
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Live Demo: https://projectstack-dev.vercel.app
- Report Bug: GitHub Issues
Made with β€οΈ by the DevNation | Nexus Team of AJIET