Découvre l’architecture du projet, la stack technique, et la structure des dossiers côté frontend et backend.
Dans ce module Démarrage du projet Remix & NestJS : structure et outils, vous allez découvrir comment organiser et lancer votre application full-stack. Nous verrons la stack technique, l’architecture générale et la structure des dossiers pour le frontend (Remix) et le backend (NestJS). Vous serez ainsi prêt·e à coder en toute sérénité.
Ce projet s’appuie sur :
Cette combinaison vous permet de monter en compétence sur une stack moderne, évolutive et pleine de bonnes pratiques.
Le projet est organisé en deux répertoires principaux à la racine :
1.2├── backend3│ ├── src4│ │ ├── auth5│ │ ├── chat6│ │ ├── socket7│ │ ├── stripe8│ │ └── user9│ ├── .env10│ ├── Dockerfile11│ └── tsconfig.json12└── frontend13├── app14│ ├── routes15│ ├── components16│ └── styles17├── remix.config.js18├── package.json19└── tsconfig.json
1import { Module } from '@nestjs/common';2import { ConfigModule } from '@nestjs/config';3import { AppGateway } from './app.gateway';4import { AuthModule } from './auth/auth.module';5import { ChatModule } from './chat/chat.module';6import { SocketModule } from './socket/socket.module';7import { StripeModule } from './stripe/stripe.module';8import { UserModule } from './user/user.module';910@Module({11imports: [12ConfigModule.forRoot({ isGlobal: true }),13UserModule,14AuthModule,15ChatModule,16SocketModule,17StripeModule,18],19providers: [AppGateway],20})21export class AppModule {}
1export const loader = async ({ request }) => {2const user = await getOptionalUser({ request });3const env = envSchema.parse({4WEBSOCKET_URL: process.env.WEBSOCKET_URL ?? 'ws://localhost:8001',5});6return json({ user, env });7};
Dès le démarrage, vous alignez vos configurations frontend et backend pour assurer une communication fluide (URLs, clés, sockets… )
Dans les sections qui suivent, nous décortiquerons chaque partie pour que vous sachiez :