source-code/
portofolio-backend
Public
codeCodeinfoIssues 0call_splitPull Requestsplay_circleActions
portofolio-backend/src/app.module.ts
typescript41 lines1.2 KB
import { Module } from '@nestjs/common';
import { CacheModule } from '@nestjs/cache-manager';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PrismaModule } from './prisma/prisma.module';
import { AuthModule } from './auth/auth.module';
import { PortfolioModule } from './portfolio/portfolio.module';
import { ThrottlerModule, ThrottlerGuard } from '@nestjs/throttler';
import { APP_GUARD } from '@nestjs/core';
import { ConfigModule } from './config/config.module';
import { ScheduleModule } from '@nestjs/schedule';
import { GithubModule } from './github/github.module';
import { ContactModule } from './contact/contact.module';

@Module({
  imports: [
    CacheModule.register({
      isGlobal: true,
      ttl: 3600000, // 1 hour
      max: 100, // Max items in memory
    }),
    ThrottlerModule.forRoot([{ ttl: 60000, limit: 100 }]), // 100 requests per minute
    ScheduleModule.forRoot(),
    PrismaModule,
    AuthModule,
    PortfolioModule,
    ConfigModule,
    GithubModule,
    ContactModule,
  ],
  controllers: [AppController],
  providers: [
    AppService,
    {
      provide: APP_GUARD,
      useClass: ThrottlerGuard,
    },
  ],
})
export class AppModule {}

About

Fullstack portfolio backend built with NestJS, Prisma, and PostgreSQL. Features JWT authentication, throttler rate limits, cache management, and automated GitHub repository synchronization.

TypeScriptNestJSPostgreSQLPrisma

Contributors

1