Skip to content

Commit 5b489fa

Browse files
Merge pull request #2 from Sooraj-krishna/main
Completed The Project Collaboration Platform
2 parents ff49239 + 188e31b commit 5b489fa

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+19309
-1
lines changed

.github/FUNDING.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# These are supported funding model platforms
2+
3+
github: shadil-rayyan
4+
patreon: # Replace with a single Patreon username
5+
open_collective: # Replace with a single Open Collective username
6+
ko_fi: # Replace with a single Ko-fi username
7+
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8+
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9+
liberapay: # Replace with a single Liberapay username
10+
issuehunt: # Replace with a single IssueHunt username
11+
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12+
polar: # Replace with a single Polar username
13+
buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14+
thanks_dev: # Replace with a single thanks.dev username
15+
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/workflows/nextjs.yml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Deploy Next.js site to Pages
2+
3+
on:
4+
push:
5+
branches: ["main"]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: "pages"
15+
cancel-in-progress: false
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout repository
22+
uses: actions/checkout@v4
23+
24+
- name: Detect package manager
25+
id: detect-package-manager
26+
run: |
27+
if [ -f "${{ github.workspace }}/yarn.lock" ]; then
28+
echo "manager=yarn" >> $GITHUB_OUTPUT
29+
echo "command=install" >> $GITHUB_OUTPUT
30+
echo "runner=yarn" >> $GITHUB_OUTPUT
31+
elif [ -f "${{ github.workspace }}/package.json" ]; then
32+
echo "manager=npm" >> $GITHUB_OUTPUT
33+
echo "command=ci" >> $GITHUB_OUTPUT
34+
echo "runner=npx --no-install" >> $GITHUB_OUTPUT
35+
else
36+
echo "Unable to determine package manager"
37+
exit 1
38+
fi
39+
40+
- name: Setup Node.js
41+
uses: actions/setup-node@v4
42+
with:
43+
node-version: "20"
44+
cache: ${{ steps.detect-package-manager.outputs.manager }}
45+
46+
- name: Setup Pages
47+
uses: actions/configure-pages@v5
48+
with:
49+
static_site_generator: next
50+
51+
- name: Restore cache
52+
uses: actions/cache@v4
53+
with:
54+
path: .next/cache
55+
key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }}
56+
restore-keys: |
57+
${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}-
58+
59+
- name: Install dependencies
60+
run: ${{ steps.detect-package-manager.outputs.manager }} ${{ steps.detect-package-manager.outputs.command }}
61+
62+
- name: Build with Next.js
63+
run: ${{ steps.detect-package-manager.outputs.runner }} next build
64+
env:
65+
FIREBASE_ADMIN_SDK_KEY: ${{ secrets.FIREBASE_ADMIN_SDK_KEY }}
66+
NEXT_PUBLIC_FIREBASE_API_KEY: ${{ secrets.NEXT_PUBLIC_FIREBASE_API_KEY }}
67+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${{ secrets.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}
68+
NEXT_PUBLIC_FIREBASE_PROJECT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_PROJECT_ID }}
69+
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET: ${{ secrets.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}
70+
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}
71+
NEXT_PUBLIC_FIREBASE_APP_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_APP_ID }}
72+
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID: ${{ secrets.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID }}
73+
74+
75+
- name: Upload artifact
76+
uses: actions/upload-pages-artifact@v3
77+
with:
78+
path: ./out
79+
80+
deploy:
81+
environment:
82+
name: github-pages
83+
url: ${{ steps.deployment.outputs.page_url }}
84+
runs-on: ubuntu-latest
85+
needs: build
86+
steps:
87+
- name: Deploy to GitHub Pages
88+
id: deployment
89+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.*
7+
.yarn/*
8+
!.yarn/patches
9+
!.yarn/plugins
10+
!.yarn/releases
11+
!.yarn/versions
12+
13+
# testing
14+
/coverage
15+
16+
# next.js
17+
/.next/
18+
/out/
19+
20+
# production
21+
/build
22+
23+
# misc
24+
.DS_Store
25+
*.pem
26+
27+
# debug
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
.pnpm-debug.log*
32+
33+
# env files (can opt-in for committing if needed)
34+
.env*
35+
36+
# vercel
37+
.vercel
38+
39+
# typescript
40+
*.tsbuildinfo
41+
next-env.d.ts

LICENSE

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
Copyright (c) 2025 Shadil Am. All rights reserved.
2+
3+
1. DEFINITIONS
4+
“Repository” means this source code and its associated files.
5+
“You” means any individual or entity that forks, clones, copies, views, or otherwise accesses the Repository.
6+
7+
2. LICENSE AND RESTRICTIONS
8+
This Repository is proprietary and confidential. You may *not* use, copy, modify, distribute, display, execute, publish, sublicense, or sell it in whole or in part without express prior written permission from Shadil Am.
9+
*Exception:* You may fork the Repository and submit pull requests on GitHub solely for the purpose of contributing code back. Such usage is strictly limited to GitHub’s pull-request system and does not grant any other rights.
10+
11+
3. NO IMPLIED LICENSE
12+
No license—express, implied, by estoppel, or otherwise—to any intellectual property is granted except as expressly stated above.
13+
14+
4. TERMINATION
15+
Any use beyond the limited exception in Section 2 will immediately terminate any rights you may have under this Agreement.
16+
17+
5. DISCLAIMER OF WARRANTIES
18+
This Repository is provided “AS IS,” without any warranty, express or implied. To the maximum extent permitted by applicable law, Shadil Am disclaims all warranties.
19+
20+
6. LIMITATION OF LIABILITY
21+
Shadil Am will not be liable for any special, indirect, incidental, or consequential damages arising out of or in connection with this Repository.
22+
23+
7. GOVERNING LAW & JURISDICTION
24+
This Agreement is governed by and construed under the laws of the State of Kerala, Republic of India, without regard to its conflict-of-law rules. You irrevocably submit to the exclusive jurisdiction of the courts located in Kochi, Kerala, India, for any dispute arising under or relating to this Agreement.
25+
26+
8. CONTACT
27+
Permission requests or inquiries should be sent to *shadilrayyan2@gmail.com*.

README.md

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,80 @@
1-
# Project_Collab
1+
# Project Collaboration Platform
2+
3+
## 🚀 Overview
4+
A modern web platform for students, professionals, and innovators to share project ideas and find collaborators. Users can post their project ideas, specify required skills, and provide contact information (Instagram, LinkedIn, Email, WhatsApp) for interested collaborators to reach out.
5+
6+
## 🎯 Purpose
7+
- Help users find collaborators for their projects.
8+
- Showcase project ideas and attract interest from the community.
9+
- Enable easy contact and networking between project owners and interested contributors.
10+
11+
## 🛠️ Features
12+
- Add project ideas with type, department, technology, description, and more.
13+
- Optional contact info fields: Instagram, LinkedIn, Email, WhatsApp.
14+
- Filter and search projects by type, department, technology, etc.
15+
- View your own projects in your profile.
16+
- Edit and manage your projects.
17+
- Secure authentication and user management.
18+
19+
## 🌐 Use Cases
20+
- Students looking for teammates for academic or hobby projects.
21+
- Professionals seeking collaborators for side projects or startups.
22+
- Hackathon teams forming around new ideas.
23+
24+
## 🏗️ Tech Stack
25+
- **Frontend:** Next.js, React, Tailwind CSS
26+
- **Backend:** Next.js API routes, Drizzle ORM, PostgreSQL
27+
- **Auth:** Firebase Authentication
28+
- **Database:** PostgreSQL
29+
30+
## ⚙️ Setup & Installation
31+
32+
### 1. Clone the Repository
33+
```bash
34+
git clone https://github.com/yourusername/project-collaboration.git
35+
cd project-collaboration
36+
```
37+
38+
### 2. Install Dependencies
39+
```bash
40+
npm install
41+
```
42+
43+
### 3. Environment Variables
44+
Create a `.env.local` file in the root directory and add the following:
45+
```env
46+
DATABASE_URL=postgresql://user:password@localhost:5432/yourdb
47+
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
48+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
49+
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
50+
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
51+
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
52+
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
53+
FIREBASE_ADMIN_PRIVATE_KEY=your_firebase_admin_private_key
54+
FIREBASE_ADMIN_CLIENT_EMAIL=your_firebase_admin_client_email
55+
```
56+
57+
### 4. Database Migration & Seeding
58+
```bash
59+
npx drizzle-kit push
60+
npx tsx drizzle/seed.ts
61+
```
62+
63+
### 5. Run the Development Server
64+
```bash
65+
npm run dev
66+
```
67+
Visit [http://localhost:3000](http://localhost:3000) to view the app.
68+
69+
## 📦 Project Structure
70+
- `app/` — Next.js app directory (pages, API routes, components)
71+
- `components/` — Shared React components
72+
- `drizzle/` — Database schema, migrations, and seed scripts
73+
- `lib/` — Utility libraries, database, and Firebase config
74+
- `types/` — TypeScript types
75+
76+
## 🤝 Contributing
77+
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
78+
79+
## 📄 License
80+
[MIT](LICENSE)

WIKI.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Project Collaboration Platform Wiki
2+
3+
Welcome to the Project Collaboration Platform Wiki!
4+
5+
## About
6+
This platform helps users share project ideas and find collaborators. Users can post projects, specify required skills, and provide contact info for easy networking.
7+
8+
## Key Features
9+
- Add and manage project ideas
10+
- Filter/search projects
11+
- Profile page for your projects
12+
- Contact project owners via Instagram, LinkedIn, Email, WhatsApp
13+
- Admin panel for managing categories and options
14+
- Secure authentication with Firebase
15+
16+
---
17+
18+
## Getting Started
19+
20+
### 1. Clone the Repository
21+
Clone the repository to your local machine:
22+
```bash
23+
git clone https://github.com/yourusername/project-collaboration.git
24+
cd project-collaboration
25+
```
26+
27+
### 2. Install Dependencies
28+
Install all required Node.js packages:
29+
```bash
30+
npm install
31+
```
32+
33+
### 3. Environment Setup
34+
Create a `.env.local` file in the root directory. You can copy from an example if provided:
35+
```bash
36+
cp .env.example .env.local
37+
```
38+
Fill in the following variables with your own credentials:
39+
```env
40+
DATABASE_URL=postgresql://user:password@localhost:5432/yourdb
41+
42+
NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
43+
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain
44+
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id
45+
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket
46+
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id
47+
NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id
48+
49+
FIREBASE_ADMIN_PRIVATE_KEY=your_firebase_admin_private_key
50+
FIREBASE_ADMIN_CLIENT_EMAIL=your_firebase_admin_client_email
51+
```
52+
53+
### 4. Database Migration & Seeding
54+
Run the following commands to set up your database schema and seed initial data:
55+
```bash
56+
npx drizzle-kit push
57+
npx tsx drizzle/seed.ts
58+
```
59+
60+
### 5. Start the Development Server
61+
Start the app locally:
62+
```bash
63+
npm run dev
64+
```
65+
Visit [http://localhost:3000](http://localhost:3000) in your browser.
66+
67+
---
68+
69+
## Usage
70+
- **Add a Project:** Use the "Add Project" page to submit your idea and contact info.
71+
- **View Projects:** Browse and filter projects on the home page.
72+
- **Profile:** See and manage your own projects in your profile.
73+
- **Edit/Delete:** Edit or delete your projects from your profile page.
74+
- **Contact:** Use the provided links to contact project owners via Instagram, LinkedIn, Email, or WhatsApp.
75+
- **Admin:** Use the admin panel to manage categories and options.
76+
77+
---
78+
79+
## Advanced Configuration
80+
- **Custom Domains:** You can specify a custom domain for your project if needed.
81+
- **Seeding More Data:** Edit the files in `drizzle/seed-*.ts` to add more categories, options, or example projects.
82+
- **Production Deployment:** Configure your environment variables and database for production. Use a process manager (like PM2) or deploy to Vercel/Netlify for serverless hosting.
83+
84+
---
85+
86+
## Troubleshooting
87+
- **Database Errors:** Ensure your `DATABASE_URL` is correct and the database server is running.
88+
- **Firebase Auth Issues:** Double-check all Firebase credentials in your `.env.local` file.
89+
- **Migrations Fail:** If migrations fail, check for existing tables or conflicting schema changes.
90+
- **Port in Use:** If port 3000 is in use, set `PORT=xxxx` in your `.env.local`.
91+
92+
---
93+
94+
## FAQ
95+
- **How do I add a new category?** Use the admin panel to manage categories.
96+
- **How do I reset my password?** Use the Firebase authentication reset link.
97+
- **How do I change the project branding?** Edit the Navbar and Footer components in `components/`.
98+
- **How do I add more contact methods?** Extend the project schema and forms in the codebase.
99+
100+
---
101+
102+
## More
103+
For detailed documentation, see the README or open an issue for help. You can also expand this wiki with:
104+
- API Reference
105+
- Admin Guide
106+
- Deployment Guide
107+
- Customization Tips

0 commit comments

Comments
 (0)