Full-stack startup incubator showcase platform, project for semester 3 of the Epitech Web Development module (TEK3).
This project simulates a real client engagement where JEB Incubator (a fictional startup accelerator) commissioned our team to develop a comprehensive web platform showcasing their portfolio companies. The platform serves as a bridge between innovative startups and potential investors, partners, and clients, featuring real-time messaging, advanced search capabilities, and role-based dashboards.
The fictional client scenario included email communications with contradictory requirements and evolving specifications, mimicking real-world client relationships. Students experienced authentic development challenges including:
- Scope Creep: Features continuously added without timeline adjustments
- Stakeholder Conflicts: Balancing requests from different "departments"
- Technical Pivots: Architecture changes mid-development
- Deadline Pressure: Realistic timeline constraints with client presentations
- Professional Communication: Email exchanges requiring diplomatic requirement clarification
This educational approach taught us to navigate changing requirements, communicate effectively with stakeholders, and deliver a professional product under realistic constraints - essential skills for software development careers.
The complete project specifications and client brief can be found in doc/cdc.md.
- Node.js (v18+)
- Docker & Docker Compose
- PostgreSQL (if running without Docker)
git clone https://github.com/WilliamJlvt/Survivor-Tek3.git
cd Survivor-Tek3
cp .env.example .env
docker-compose up --build# Development mode
docker-compose -f docker-compose-dev.yml up
# Production mode
docker-compose up
# Frontend only (requires backend running)
cd frontend && npm run dev
# Backend only (requires database)
cd backend && npm run start:devThe platform is built with a modern full-stack architecture:
- Framework: Next.js with App Router
- Styling: Tailwind CSS + ShadCN UI components
- State Management: React hooks + Context API
- Real-time: Socket.io client for messaging
- Authentication: JWT-based auth with middleware
- Framework: NestJS with TypeScript
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT tokens with bcrypt hashing
- Real-time: Socket.io for messaging system
- API Documentation: OpenAPI/Swagger
- Deployment: Docker containerization
- β Public Project Showcase: Browse startup portfolio with advanced filtering by sector, maturity, and location
- β Detailed Project Profiles: Comprehensive startup information with media galleries and progress tracking
- β Advanced Search Engine: Multi-criteria filtering with real-time results and saved searches
- β Events Calendar: Interactive calendar showcasing incubator events, pitch sessions, and workshops
- β News Feed: Dynamic content management system for announcements and success stories
- β Responsive Design: Mobile-first approach with full accessibility (WCAG) compliance
- β Admin Dashboard: Complete CRUD operations for projects, users, events, and content management
- β Startup Portal: Self-service profile management with analytics and visibility tracking
- β User Management: Granular permission system supporting multiple user roles and privileges
- β Authentication System: Secure JWT-based auth with refresh tokens and password reset
- β Live Messaging: Direct communication between startups and investors with typing indicators
- β WebSocket Integration: Real-time notifications and status updates across the platform
- β Activity Feeds: Live updates on project changes, new connections, and platform activity
- β API Integration: External data synchronization with migration capabilities from legacy systems
- β Docker Deployment: Containerized application with development and production configurations
- β Database Management: PostgreSQL with Prisma ORM featuring automated migrations
- β Performance Optimization: Image optimization, lazy loading, and efficient query patterns
Comprehensive documentation is available in the doc/ directory:
- π Project Specifications - Complete client brief and requirements
- ποΈ Technical Architecture - System design, database schema, and deployment
- βοΈ Development Guide - Setup instructions, coding standards, and workflows
- π Client Simulation - Educational context and learning objectives
- π³ Docker Setup - Container deployment and environment configuration
- π₯ User Guide - Platform usage instructions for all user roles
- Interactive Docs:
http://localhost:3001/api-docs(Swagger UI after deployment) - OpenAPI Spec: api-openapi.json - Complete API specification
The codebase maintains high standards through:
- TypeScript: Full type safety across frontend and backend
- ESLint + Prettier: Automated code formatting and style enforcement
- Jest Testing: Unit and integration tests for critical functionality
- API Validation: Request/response validation with comprehensive error handling
- Security: Input sanitization, CORS protection, and secure authentication
- Performance: Database query optimization and efficient rendering patterns
Survivor-Tek3/
βββ π― frontend/ # Next.js 15 application
β βββ src/app/ # App Router pages and layouts
β βββ src/components/ # Reusable UI components
β βββ src/hooks/ # Custom React hooks
β βββ src/types/ # TypeScript definitions
βββ βοΈ backend/ # NestJS API server
β βββ src/auth/ # Authentication module
β βββ src/projects/ # Project management
β βββ src/messaging/ # Real-time messaging
β βββ src/prisma/ # Database schema & migrations
βββ π doc/ # Comprehensive documentation
β βββ architecture.md # Technical architecture
β βββ development.md # Development guidelines
β βββ client-simulation.md # Educational context
β βββ cdc.md # Project specifications
βββ π³ docker-compose.yml # Container orchestration
βββ π§ .github/ # CI/CD workflows
βββ π api-openapi.json # API specification
This project represents a TEK3 (3rd year) Epitech Web Development capstone exercise completed during the intense 2-week "PISCINE SURVIVOR" (September 1-12, 2024). This high-pressure bootcamp simulated professional client engagement with mandatory daily attendance from 9:30 AM, providing hands-on experience with real-world software development challenges beyond traditional academic projects.
The educational framework followed an intensive bootcamp structure:
- β±οΈ Duration: 14 intensive days with potential extension
- π Format: Mandatory on-site presence from 9:30 AM daily
- π― Objective: Survive the pressure while delivering a professional product
- β‘ Intensity: High-stakes environment with strict attendance requirements
- π Stakes: Performance directly impacts international placement opportunities
The intensive 2-week format pushed students to master:
- π€ Client Relationship Management: Navigating contradictory requirements and stakeholder conflicts through professional email communication
- β‘ Full-Stack Mastery: Modern React/Node.js ecosystem with TypeScript, real-time features, and microservices architecture
- π§ DevOps Integration: Docker containerization, CI/CD pipelines, and production deployment strategies
- π₯ Team Collaboration: Advanced Git workflows, code reviews, and agile project management under extreme pressure
- β° Professional Constraints: Managing scope creep, timeline pressures, and quality vs. delivery trade-offs in a compressed timeframe
- π Scalability Planning: Designing systems for growth with performance optimization and maintainable architecture
- π§ Stress Management: Maintaining code quality and team dynamics under intensive daily pressure
The fictional "JEB Incubator" client provided an engaging narrative framework that taught essential professional skills for web development careers. Combined with the "Piscine Survivor" intensity, students experienced authentic challenges including mid-project pivots, conflicting stakeholder priorities, and the diplomatic communication required in client services - all while managing the stress of daily evaluations and attendance requirements.
This unique combination of client simulation + bootcamp intensity created an educational experience closely mirroring startup development environments and consulting pressures.
π Complete simulation details: Client Simulation Experience
- William Jolivet (GitHub / LinkedIn) - Full-stack development, DevOps
- Lorenzo La Rocca (GitHub / LinkedIn) - Backend development, messaging system
- Noa Smoter (GitHub / LinkedIn) - Frontend development, UI/UX
- Nathan Deleger (GitHub / LinkedIn) - Database design, API integration
This project is licensed under the GNU Public License version 3.0 - see the LICENSE file for details.