{"id":19111000,"url":"https://github.com/acensjj/ft_transcendence","last_synced_at":"2026-05-04T18:40:15.590Z","repository":{"id":105924187,"uuid":"375338939","full_name":"AcensJJ/ft_transcendence","owner":"AcensJJ","description":"This is not C or C++ basic functions ! To do something that you’ve never done before whitout a piscine. Remind yourself at the beginning of your journey in computer science. Now look where you are standing. Time to shine","archived":false,"fork":false,"pushed_at":"2021-10-29T17:25:07.000Z","size":21249,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-22T11:24:56.190Z","etag":null,"topics":["42","42born2code","ft-transcendence","nestjs","postgresql","website"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AcensJJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-09T11:57:42.000Z","updated_at":"2023-05-31T07:05:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"d2edbbec-5efc-41da-8306-d6271e3948ea","html_url":"https://github.com/AcensJJ/ft_transcendence","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AcensJJ/ft_transcendence","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_transcendence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_transcendence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_transcendence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_transcendence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AcensJJ","download_url":"https://codeload.github.com/AcensJJ/ft_transcendence/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_transcendence/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32620511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["42","42born2code","ft-transcendence","nestjs","postgresql","website"],"created_at":"2024-11-09T04:26:43.647Z","updated_at":"2026-05-04T18:40:15.574Z","avatar_url":"https://github.com/AcensJJ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"42-lyon\" src=\"https://user-images.githubusercontent.com/45235527/106354618-6ec65a00-62f3-11eb-8688-ba9e0f4e77de.jpg\" /\u003e\n\u003c/p\u003e\n\n# ft_transcendence\n\n\u003cimg alt=\"Note\" src=\"https://user-images.githubusercontent.com/45235527/96753610-698e7080-13d0-11eb-9461-d3351c9208d7.png\" width=\"250\" height=\"200\" /\u003e \n\n### \u003cstrong\u003eDescription\u003c/strong\u003e\n\nThis is not C or C++ basic functions ! To do something that you’ve never\ndone before whitout a piscine. Remind yourself at the beginning of your journey in\ncomputer science. Now look where you are standing. Time to shine\n\n\u003e *Contributors:\u003cbr\u003e*\n\u003e -\t   *\u003ca href=\"https://github.com/nemu69\"\u003eNemuel Page Léonie\u003c/a\u003e (\u003ca href=\"https://profile.intra.42.fr/users/nepage-l\"\u003enepage-l\u003c/a\u003e).\u003cbr\u003e*\n\u003e -    *\u003ca href=\"https://github.com/JDesbordes\"\u003eJérôme Desbordes\u003c/a\u003e (\u003ca href=\"https://profile.intra.42.fr/users/jdesbord\"\u003ejdesbord\u003c/a\u003e).\u003cbr\u003e*\n\u003e -    *\u003ca href=\"https://github.com/AcensJJ\"\u003eJean-Jacques Acens\u003c/a\u003e (\u003ca href=\"https://profile.intra.42.fr/users/jacens\"\u003ejacens\u003c/a\u003e).*\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"war\" src=\"https://user-images.githubusercontent.com/45235527/139450481-561e3ae8-f843-4d52-8d32-f36f4afca31e.gif\" /\u003e\n\u003c/p\u003e\n\n# Mandatory part\n\n## I - 1 Overview\n\nIn this subject you will need to build a website for the mighty pong contest.\nYour website will help user run pong tournament and play against each other.\nThere will be an admin view, chat with moderators, real time multiplayer online\ngames.\nThere will be guilds and wars!\nYou will need to follow thoses rules:\n- you must use the last stable version of every frameworks or libraries.\n- Your website backend should be written in NestJS.\n- You must use a postgresql database and no other databases.\n- The front end must be written with any typescript framework.\n- Your website should be a single page app, but user should be able to use the back\nbutton on the browser https://en.wikipedia.org/wiki/Singlepage_application\n- Your website must be usable on the latest version to date on Google Chrome,\nFirefox, Safari.\n- There must be no unhandled errors or warning when browsing through the website.\n- You can use any library.\n- Everything should run with a single call to docker-compose up –build\n\n## I - 2 Security concerns\n\nBecause you are creating a fully-working website, there are a few security concerns that\nyou will have to tackle\n- Any password stored in your database must be encrypted\n- Your website must be protected against SQL injections\n- You must implement some kind of server-side validation for forms and any user\ninput\n\n## I - 3 User Account\n\n- A user must login using the oauth system of 42 intranet\n- A user must be able to choose a unique name that will be displayed on the website\n- A user has a number of victory and loss and other stats (ladder level, number of\nwon tournaments, achievements etc...)\n- A user must have an avatar generated or uploaded by the user\n- A user must be able to activate a 2 factor authentication (like google authenticator\nor a sms etc...)\n- A user can be in 1 guild at a time\n- A user can add other users as friends, and see their current status (online, offline,\nin a game...)\n- Each user has a match history (including duel, ladder or tournaments games) that\ncan be consulted by anyone logged-in\n\n## I - 4 Chat\n\n- Users must be able to create channels public/private or protected by a password\n- Users must be able to send direct messages to other user\n- Users must be able to block other user and therefore they will not see their messages\nanymore\n- A user that create a new channel is automatically its owner until he leaves the\nchannel\n    - owner of a channel can add/change/remove a password to access to the channel\n    - owner can select user to be administrator and is also administrator of the\nchannel\n        - administrator can ban or mute users for a certain amount of time\n- Through the chat interface users should be able to ask other player to do a Pong\nmatch\n- Through the chat interface users must be able to see other players profiles\n\n## I - 5 Game\n\nThe main purpose of this website is to play pong against other players and show everyone\nhow good you are!\nTherefor we should be able to play pong directly on the website and live against an\nother player.\nIt can be in a canvas or it can be with 3d effects, it can be ugly but it must be a pong\nlike the one from 1972.\nIf you want to, you can add power ups, different maps etc... but user must be able to\nplay a default pong game without any added stuff.\nThe game must be responsive!\nOther users can watch the game live without interfering in it.\n\nRequirements\n============\n\n* docker\n* docker-compose\n\nInstallation\n============\n\n`docker-compse up --build`\n\n# Results\n\n\u003cimg width=\"1516\" alt=\"transcendence\" src=\"https://user-images.githubusercontent.com/45235527/139443999-fda6d2cf-2a95-4b9e-9d57-d77d25e604da.png\"\u003e\n\n\u003cimg width=\"1516\" alt=\"war - profil\" src=\"https://user-images.githubusercontent.com/45235527/139444550-b536a9a7-090f-4a55-97df-bca61319462a.png\"\u003e\n\n\u003cimg width=\"1516\" alt=\"war - pong\" src=\"https://user-images.githubusercontent.com/45235527/139444775-93d4b070-d351-4843-9980-c68df1c01b0a.png\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Fft_transcendence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facensjj%2Fft_transcendence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Fft_transcendence/lists"}