A platform for university students to publish project ideas, specify required skills, and form teams through structured join requests.
The Project Specifications Document for our teacher.
- React 18+ - Modern UI library with hooks and concurrent features
- TypeScript - Type-safe JavaScript for better development experience
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- React Router v6 - Client-side routing with protected routes
- Axios - HTTP client for API communication
- Vite - Fast build tool and dev server
- PHP 8.5+ - Modern PHP with type hints and features
- Slim 4 - Micro-framework for REST API
- SQLite 3 - Lightweight relational database
- PDO - Database abstraction layer with prepared statements
- PHPUnit - Testing framework for backend
- Composer - PHP dependency management
- npm - JavaScript package management
- Git - Version control
Campus-TeamUp/
├── backend/ # PHP REST API
│ ├── database/ # SQLite database and schema
│ │ ├── campus-teamup.db # Database file (generated)
│ │ └── schema.sql # Database schema
│ ├── public/ # Public web root
│ │ └── index.php # API entry point
│ ├── src/ # Application source code
│ │ ├── Controllers/ # API endpoint handlers
│ │ ├── Middleware/ # Authentication & authorization
│ │ └── Models/ # Database models
│ ├── tests/ # PHPUnit test suite
│ ├── vendor/ # Composer dependencies
│ ├── .env.example # Environment configuration template
│ ├── composer.json # PHP dependencies
│ └── routes.php # Route definitions
├── frontend/ # React TypeScript application
│ ├── public/ # Static assets
│ ├── src/ # Application source code
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API service layer
│ │ ├── contexts/ # React contexts for state
│ │ └── types/ # TypeScript type definitions
│ ├── .env.example # Environment configuration template
│ ├── package.json # npm dependencies
│ └── vite.config.ts # Vite build configuration
├── docs/ # Documentation
│ └── specifications.md # Project requirements
└── README.md # This file
The platform homepage where students can discover projects and learn about team formation opportunities.
🔍 Discover Projects
Browse and filter projects by category, required skills, and status. Each project card shows skill match percentages based on your profile.
📋 Project Details
View comprehensive project information including required skills, team composition, and application status.
👤 User Dashboard
Manage your owned projects, team memberships, applications, and saved projects all in one place.
📊 Platform Management
Administrators can monitor platform statistics, moderate users and projects, and manage platform health.
Secure login system for students to access their accounts and manage their projects.
- PHP 8.5+
- Composer
- Node.js 20+
- npm
-
Navigate to backend directory: ```bash cd backend ```
-
Install dependencies: ```bash composer install ```
-
Configure environment: ```bash cp .env.example .env
```
-
Initialize database: ```bash cd database sqlite3 campus-teamup.db < schema.sql cd .. ```
-
Start PHP server: ```bash php -S 0.0.0.0:8000 -t public ```
Backend will run on http://localhost:8000
Network Access: The backend server is configured to accept connections from other devices on your local network. To test from mobile/tablet:
- Find your computer's IP address (e.g., 192.168.1.100)
- Update frontend .env:
VITE_API_URL=http://YOUR_IP:8000 - Access from other devices: http://YOUR_IP:8000/api/ping
-
Navigate to frontend directory: ```bash cd frontend ```
-
Install dependencies: ```bash npm install ```
-
Configure environment: ```bash cp .env.example .env ```
-
Start Vite dev server: ```bash npm run dev ```
Frontend will run on http://localhost:5173
Network Access: The dev server is configured to accept connections from other devices on your local network. To test from mobile/tablet:
- Find your computer's IP address (e.g., 192.168.1.100)
- Access from other devices: http://YOUR_IP:5173
- Make sure backend is also accessible from network
```bash curl http://localhost:8000/api/ping ```
Expected response: ```json {"status":"ok","message":"Campus TeamUp API is running","timestamp":"..."} ```
Open browser to http://localhost:5173
- Phase 0: Project Setup
- Phase 1: Authentication & Profiles
- Phase 2: Projects Core
- Phase 3: Applications & Teams
- Phase 4: Admin & Polish
- Phase 5: Ship & Refine





