Skip to content

This project is about creating a website for the mighty Pong contest!

Notifications You must be signed in to change notification settings

denizkarhan/transcendence

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

FT_TRANSENDENCE

📌 This project is about creating a website for the mighty Pong contest!

🖇️ Project Description

1 2 3 4 5

🔵 NestJS

🟢 1) NestJS 101

NestJS, Node.js tabanlı bir web uygulama çerçevesidir. TypeScript dilini kullanır ve kolay, ölçeklenebilir, yapılandırılabilir ve test edilebilir bir mimari sunar. Angular'dan esinlenmiştir. NestJS, sunucu tarafında web uygulamaları, mikroservisler ve ağ geçitleri oluşturmak için kullanılabilir. Ayrıca WebSocket gibi gerçek zamanlı uygulamalar için de kullanılabilir. Modüler bir yapıya sahiptir, bu da uygulamanın bölünebilirliğini ve birleştirilebilirliğini artırır. Express ve Fastify gibi Node.js HTTP sunucularının üzerine kurulmuştur. Bu sunucuların işlevselliğini korurken NestJS'in ek özelliklerinden de yararlanabilirsiniz. NestJS, diğer JavaScript veya TypeScript kütüphaneleri ve araçlarıyla kolayca entegre olabilir. Örneğin, TypeORM, Mongoose, Passport, GraphQL gibi yaygın kütüphanelerle uyumludur.

🟢 2) NodeJS Kurulum

🔴 2.1) Ön Koşullar
    Lütfen işletim sisteminizde Node.js'i (sürüm >= 12, v13 hariç) kur.
🔴 2.2) Brew İndir
  git clone https://github.com/Homebrew/brew homebrew
🔴 2.3) NodeJS İndir
  brew update
  brew install node
  node -v
  npm -v
🔴 2.4) Linux Alternatif
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash source ~/.bashr
Ekran Resmi 2023-05-08 ÖS 5 00 54

🟢 3) NestJS Kurulum

💠 NestJS'in çekirdek modüllerini ve Express platformunu kur daha sonra NestJS CLI aracını yükle 💠
npm i --save @nestjs/core @nestjs/common @nestjs/platform-express
npm i -g @nestjs/cli

🟢 4) Yeni Bİr Proje Oluştur

🏳️ Yeni bir NestJS projesi oluşturmak için aşağıdaki komutu kullanın:
  nest new project-name

Projeyi oluşturduktan sonra, proje dizinine gidin ve aşağıdaki komutula proje çalıştırın 🚩

cd project-name
npm run start
npm run start:dev => Watch Mode

Bu komut, Node.js sunucusunu başlatır ve NestJS uygulamanızı çalıştırır. Varsayılan olarak, uygulamanız http:https://localhost:3000 adresinde çalışır. Bu adımları takip ederek, NestJS ile yeni bir proje oluşturabilirsiniz. Daha sonra, uygulamanızı ihtiyaçlarınıza göre özelleştirebilir ve geliştirebilirsiniz.

🟢 5) Porje İçeriği

project-name oluşturulacak. Düğüm modülleri, diğer birkaç standart dosya kurulacak ve bir src/dizin oluşturulacak bu src dizininde birkaç çekirdek dosya ile doldurulacaktır.

🔴 5.1) Çekirdek dosyalara genel bakış

Ekran görüntüsü 2023-07-08 145523

🔵 React

🟢 1) TypeScript 101

TypeScript, JavaScript dilinin bir üst kümesidir. JavaScript diline ek olarak, tür sistemine, sınıf tabanlı nesne yönelimli programlamaya ve diğer özelliklere sahiptir. TypeScript, Microsoft tarafından geliştirilmiştir ve açık kaynaklıdır. TypeScript, JavaScript'in temel özelliklerini korurken, dilin güvenliğini ve kod kalitesini artırmak için birçok özellik ekler. Bu özellikler arasında tür denetimi, nesne tabanlı programlama, arayüzler, sınıflar, jenerikler, dekoratörler ve modüller bulunur. TypeScript, JavaScript koduyla uyumlu olduğu için, mevcut JavaScript projelerine kolayca dahil edilebilir. Ayrıca, TypeScript kodu, TypeScript derleyicisi kullanılarak JavaScript koduna dönüştürülebilir. Bu sayede, TypeScript kodu tüm modern web tarayıcılarında ve Node.js gibi platformlarda çalışabilir. TypeScript, büyük ölçekli projelerin geliştirilmesi için özellikle yararlıdır. Kodun daha açık ve anlaşılır olması, hataları erken tespit etme ve daha iyi bir kod kalitesi sağlama gibi avantajları vardır. Ayrıca, TypeScript, Angular, React, Vue.js gibi popüler web framework'lerinin de altında yatan dil olarak kullanılır.

🔴 1.1) TypeScript Framework’leri Nelerdir?

TypeScript, JavaScript'in bir üst kümesi olduğu için, birçok JavaScript framework'ü de TypeScript ile kullanılabilir. TypeScript'in ek özellikleri, özellikle büyük ölçekli projelerde kod kalitesini ve güvenliğini artırır. İşte TypeScript ile kullanılabilecek popüler JavaScript framework'lerinden bazıları:

  1. Angular: Google tarafından geliştirilen Angular, TypeScript tabanlı bir web framework'üdür. Angular, büyük ölçekli web uygulamaları geliştirmek için tasarlanmıştır ve Angular CLI gibi araçlarla kolayca kullanılabilir.

    NestJS Step-by-Step: Connecting NestJS with Angular (Part 4)

  2. React: Facebook tarafından geliştirilen React, birçok geliştirici tarafından en popüler JavaScript framework'ü olarak kabul edilir. TypeScript ile birlikte kullanıldığında, React uygulamaları daha güvenli hale gelir ve hata ayıklama daha kolay hale gelir.

    Modern Full-Stack Development with Nest.js, React, TypeScript, and MongoDB: Part 2

  3. Vue: Vue.js, son zamanlarda popülerlik kazanan bir JavaScript framework'üdür. TypeScript ile birlikte kullanılabilir ve büyük ölçekli projelerde de kullanılmaktadır.

  4. NestJS: NestJS, TypeScript tabanlı bir Node.js web framework'üdür. NestJS, sınıf tabanlı nesne yönelimli programlama prensiplerine dayanır ve Angular gibi bir yapıya sahiptir.

  5. Express: Express, Node.js için popüler bir web framework'üdür. TypeScript ile birlikte kullanılabilir ve büyük ölçekli projelerde de başarılı bir şekilde kullanılmaktadır. (Frontend değil)

🟢 2) React 101

React, basit, verimli ve güçlü bir JavaScript kütüphanesidir. Bileşen tabanlı bir yaklaşım sunar ve kullanıcı arayüzünü parçalara ayırır. Her bileşen kendi mantığı ve görüntüsüyle çalışır. Bu yapı sayesinde kodunuz daha okunabilir ve yeniden kullanılabilir hale gelir.

React, Virtual DOM (sanal DOM) kullanarak performansı artırır. Sadece değişen bileşenleri güncelleyerek kaynakları minimumda kullanır. Ayrıca, bileşen ömür döngüsü yönetimiyle, bileşenlerin oluşturulması, güncellenmesi ve yok edilmesi aşamalarında istediğiniz işlemleri gerçekleştirebilirsiniz.

React, geniş bir ekosisteme ve aktif bir topluluğa sahiptir. Üçüncü taraf kütüphaneler, araçlar ve eklentilerle desteklenir. Ayrıca, zengin bir kaynak ve dokümantasyon arşivi vardır.

React, modern web uygulamalarını hızlı, etkili ve kaliteli bir şekilde geliştirmek için ideal bir seçimdir. Basitliği, verimliliği ve geniş topluluk desteğiyle öne çıkar.

🔵 PostgreSQL

🟢 1) PostgreSQL İndirilir

  • brew update → Paket yükselt
  • brew install postgresql → PostgreSQL indir
  • postgres --version → Version kontrolü
  • brew services start postgresql → Servisi başlat
  • brew services list → Çalışan Servisleri göster
  • psql → PostgreSQL’e bağlan
  • brew services stop postgresql → PostgreSQL'i durdur

🟢 2) TypeOrm Kurulumu

  • npm install typeorm --save
  • npm install reflect-metadata --save
  • npm install @types/node --save-dev
  • npm install pg --save
  • npm add @nestjs/typeorm typeorm postgresql

🟢 3) app.module.ts

``` import "reflect-metadata"; import { TypeOrmModule } from '@nestjs/typeorm'; ```
imports: [TypeOrmModule.forRoot({
    type: 'postgres',
      host: 'localhost',
      port: 5432,
      username: 'dkarhan',
      password: '1',
      database: 'mydatabase',
      entities: [],
      synchronize: true,
  }

🟢 4) Document

🟢 5) Transcendence Sample Tables

database_example

182686678-54c00bf9-be17-4c1c-bb00-2b039d11c389 SqlTable

🟢 6) Diğer

🔴 6.1) psql -U postgres auth hatası çözümü

Screen Shot 2023-05-08 at 4 50 37 PM

🔴 6.2) Hashleme metodu

import * as crypto from 'crypto';

const password: string = 'sifreniz';
const hash = crypto.createHash('sha256').update(password).digest('hex');

console.log(hash);

🔵 Authentication

🟢 Google Authentication 🟢 Ecole 42 Authentication

Registration and Login

Sign in Register2

2 factor authentication

ProfileUpdated QRCode 2faAuth

Profile and Follower

Profile Follower

Game

Game Pong MatchHistory Achievements

Chat

Chat

Developers

🗝️ Abdullah Çetin 🧩 Deniz Karhan 🛡️ Metehan Erkol 🔭 Taha Haksal 🗡️ Furkan Tuncer