Giter Club home page Giter Club logo

ft_transcendence's Introduction

ft transcendece

rules:

to work on this team and all the working goes smoothely there is some rules you have to follow:

  • for each feature you have to create new brance and the name of the branch will describe the feature you want to add
  • do not ever under any circumstance change directly on the master branch
  • do not use git add . or * , instead add only the files that you have changed
  • each commit must only contain one change, and the commit message must be descriptive
  • for each feature you have to make a pull request that will be reviewd and merged by otossa
  • do not add any irrelevent files (include them in the git ignore instead)
  • you must write small function that do one thing
  • do not repeat your self
  • all the variables related to the configuration or secret keys and tokens will be stored on .env file
  • all .env file must be encluded on .gitignore so they will not be staged

naming convention:

  • variables must be camel case and must describe what it used to store
  • methods must be camel case and must describe what it do
  • classes must be in pascal case
  • for html classes and id's must be in cabab case

stack:

this broject will be written in this stack: - nestjs for the backend - vuejs for the front end (vuetify as component library, pinia as state management system) - nginx to serve the application - postgres as DBMS - docker , all this will be dockerized, - for development there will be docker-compose-dev.yml that will run the project on the watch mode - for production there will be docker-compose.yml that will build the project for production

colors:

alt color palette

primary color: #0C134F

run:

to run the project for dev on the watch mode run the command on the project root direcotry:

    docker compose up -f docker-compose-dev.yml

db tables:

users: - id (uuid) - username (intra login editable) - avatar (path to image can be uploaded, intra image initially) - fullname - password ()

messages: - id - user_id - conversation_id - content

conversations: - id

conversation_users: - id - conversation_id - user_id

rooms: - id - name - type (public|protected|private) - password (if protected by a password) - owner

room_users: - id - room_id - user_id - role

room_messages: - id - room_id - user_id - content

game:

games: - id - host_id (first user in the lobby) - get_id (second user) - status (finished | live) - winner_id (if finished id of the user that wins) test hooks


data will be expected on user profile

type Game = {
  id: string
  winner: User
  guest: User
  host: user
}

type UserGame = {
 game: Game
 score: int
 opponentScore: int
 opponent: User
}

type user = {
 id: string
 username: string
 avatar: string
 email: string
 games: Usergame
 level: Level
 leag: Leag
 globalRank: Rank[]
 localRank: Rank[]
 }

 type Leag = {
   id: string
   maxPoits: int
   image: string
}
 type Level = {
  user: User
  points: int
  }

 type Rank = {
   userId: string
   usename: string
   points: int
   rank: int
   leagName: string
}


type Acheivments = {
 id: int
 name: string
 }

deploy try 3

ft_transcendence's People

Contributors

fr1ng avatar am1n000 avatar afaftarchoun avatar

Stargazers

Zakaria IHIRRI avatar Reroreo1 avatar  avatar  avatar AKAZA avatar amine avatar Oussama Lakhdar avatar  avatar  avatar

Watchers

 avatar

Forkers

afaftarchoun

ft_transcendence's Issues

seen messages

add seen attribute to message on the schema and set the default to false

one user on room after leaving

when only one user on a room and he leaves the room, it throw an internal server error, cause of ownership transfer, the room should be deleted

room navigation problem

when selecting a room that has been already selected, the room info not appearing on the info bar

invite other users to a room

user should be able to invite other users to the room, event if it is private, user should be able to accept or decline the invitation

game & invitations

  • send game data and resend notification if game invitation already created
  • make a timeout to delete invitation if no action by users
  • end the game when a user disconnected

conversation order and unreaded messages number

Conversation related issue

tasks to be done:

  • move conversation loginc to a store
  • add seen attribute to messages
  • update the seen status on conversation open
  • add the count of unseen messages to the avatar
  • change the order of the conversations when getting new message (last message to the top )

Colors

  • glamour mode : text doesnt show up clearly because of clash of colors in profile/rank
  • dark/default mode: chat texts don't show up clearly because of clash of colors in messages

active conversation issue

issue related to active conversation

  • when starting new conversation it does not been added to the list of conversations
  • the already fetched conversation for a room does not show the data of the room
  • avatar and username of the first message sender sometimes disappear

Retry and Avatar issues

  • Guest (in case of inv) or one of the players avatar and username don't show up
  • Guest(in case of inv) or one of them can't retry (Home! button shows up while the host gets the retry button)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.