A comprehensive full-stack application for managing project collaboration, task tracking, and developer matchmaking.
- Project Discovery: Find active projects and open tasks.
- Project Management: Create projects, managing tasks (Kanban/List views), and track progress.
- Application System: Users can apply to projects, and owners can accept/reject applications.
- Role-Based Access: Granular permissions for Owners, Contributors, and Visitors.
- Developer Profiles: Showcase skills, work history, and reputation ratings.
- Messaging: Real-time-style internal messaging system.
- Tactical Matchmaking: Find developers based on specific domains and skills.
- Framework: React + Vite
- Styling: Tailwind CSS, Shadcn UI, Framer Motion
- State Management: React Context / Custom Hooks
- Routing: React Router DOM
- Icons: Lucide React
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB (via Mongoose)
- Authentication: JWT (JSON Web Tokens)
- Environment: Dotenv
- Node.js (v14 or higher)
- MongoDB installed locally or a MongoDB Atlas URI
-
Clone the repository:
git clone <repository-url> cd code-my-cells
-
Install Server Dependencies:
cd server npm install -
Install Client Dependencies:
cd ../client npm install
Create .env files in both client and server directories.
Server (server/.env):
MONGO_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
PORT=5000Client (client/.env):
VITE_API_BASE=http://localhost:5000-
Start the Server:
cd server npm start(Runs on port 5000)
-
Start the Client:
cd client npm run dev(Runs on port 8080)
-
Access the App: Open http://localhost:8080 in your browser.
├── client/ # Frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages (Dashboard, Find, etc.)
│ │ ├── lib/ # Utilities and mock data
│ │ └── App.tsx # Main application entry
│ └── vite.config.ts # Vite configuration
│
├── server/ # Backend API
│ ├── models/ # Mongoose schemas (User, Project, Task)
│ ├── routes/ # API endpoints
│ ├── controllers/ # Route logic
│ └── index.js # Server entry point
- Auth:
/auth/register,/auth/login - Projects:
/project(Get All),/project(Create),/project/:id(Details) - Tasks:
/task/open(Find Tasks),/task(Create) - Applications:
/application(Apply),/application/:id/accept
The project uses a Pastel Vibrant aesthetic with Brutalist elements:
- Colors: Soft Pinks, Blues, Yellows mixed with Bold Black borders.
- Typography: Custom fonts (Airone, Built Titling) for distinct identity.
- 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.
Note: This project is currently in active development.