Skip to content

WilliamJlvt/Survivor-Tek3

Repository files navigation

Web Development - JEB Incubator Platform

Full-stack startup incubator showcase platform, project for semester 3 of the Epitech Web Development module (TEK3).

Introduction

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.

Educational Simulation

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.

Prerequisites

Installation

git clone https://github.com/WilliamJlvt/Survivor-Tek3.git
cd Survivor-Tek3
cp .env.example .env
docker-compose up --build

Usage

# 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:dev

Architecture

The platform is built with a modern full-stack architecture:

Frontend (Next.js 15 + TypeScript)

  • 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

Backend (NestJS + PostgreSQL)

  • 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

Key Features

🌟 Core Platform Features

  • βœ… 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

πŸ” Role-Based Access Control

  • βœ… 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

⚑ Real-time Features

  • βœ… 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

πŸ”§ Technical Features

  • βœ… 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

πŸ“š Documentation

Comprehensive documentation is available in the doc/ directory:

API Documentation

  • Interactive Docs: http://localhost:3001/api-docs (Swagger UI after deployment)
  • OpenAPI Spec: api-openapi.json - Complete API specification

πŸ§ͺ Testing & Quality

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

πŸ“ Project Structure

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

πŸŽ“ Educational Context

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.

πŸŠβ€β™‚οΈ Piscine Survivor Format

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

🎯 Learning Objectives

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

🎭 Simulation Value

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

Authors

License

This project is licensed under the GNU Public License version 3.0 - see the LICENSE file for details.

About

πŸš€ Full-stack startup incubator platform built with Next.js 15, NestJS & PostgreSQL. Features real-time messaging, admin dashboard, and project showcase. Educational TEK3 project simulating professional client engagement with evolving requirements

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages