{"id":21469573,"url":"https://github.com/sonytruelove/place","last_synced_at":"2026-04-05T23:02:22.783Z","repository":{"id":197563156,"uuid":"698885136","full_name":"sonytruelove/Place","owner":"sonytruelove","description":":collision: Feel free to send a pull request or create a issue!","archived":false,"fork":false,"pushed_at":"2024-09-01T12:24:55.000Z","size":1298,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T10:54:13.273Z","etag":null,"topics":["beginer-friendly","devlog","docker","docker-compose","filesystem","highload","minio","nestjs","nextjs","open-source","place","rest-api","s3","scaleable","storage","trading"],"latest_commit_sha":null,"homepage":"https://sonytruelove.github.io/Place/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonytruelove.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-01T09:22:18.000Z","updated_at":"2024-12-14T15:37:34.000Z","dependencies_parsed_at":"2024-08-07T07:16:47.800Z","dependency_job_id":"4b3c8a64-8bf7-48b4-bdaf-2e67b4beaf5d","html_url":"https://github.com/sonytruelove/Place","commit_stats":null,"previous_names":["sonytruelove/ha-contract-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sonytruelove/Place","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonytruelove%2FPlace","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonytruelove%2FPlace/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonytruelove%2FPlace/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonytruelove%2FPlace/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonytruelove","download_url":"https://codeload.github.com/sonytruelove/Place/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonytruelove%2FPlace/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31452901,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T21:22:52.476Z","status":"ssl_error","status_checked_at":"2026-04-05T21:22:51.943Z","response_time":75,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["beginer-friendly","devlog","docker","docker-compose","filesystem","highload","minio","nestjs","nextjs","open-source","place","rest-api","s3","scaleable","storage","trading"],"created_at":"2024-11-23T09:16:49.590Z","updated_at":"2026-04-05T23:02:22.749Z","avatar_url":"https://github.com/sonytruelove.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch1 align=\"center\"\u003ePLACE\u003c/h1\u003e\n\n  \u003cdiv class=\"container\" align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/sonytruelove/HA-Contract-service/assets/42536061/c0fe90ba-e092-437f-a7d3-7117bb9c0805\" height=400em alt=\"PLACE LOGO\"\u003e\n  \u003c/div\u003e\n  \u003cdiv align=\"center\" \u003e\n    \n\u003cspan\u003e[EN](https://github.com/sonytruelove/Place/blob/main/README.md)\u003c/span\u003e  \u003cspan\u003e[RU](https://github.com/sonytruelove/Place/blob/main/README_ru.md)\u003c/span\u003e \u003cspan\u003e[CN](https://github.com/sonytruelove/Place/blob/main/README_cn.md)\u003c/span\u003e\n  \u003c/div\u003e\n  \n\u003cbr\u003e\n\u003ch1\u003e:collision:PLACE IS OPEN SOURCE FILE SHARING STORAGE\u003c/h1\u003e\u003c/b\u003e\n\u003cbr\u003ePLACE allows users to store files in the cloud, synchronize files across devices, and share files.\u003cbr\u003e\n You can set up by yourself OR get our help\u003cbr\u003e\nI \u003cb\u003ebelieve\u003c/b\u003e that Place will become the best easily scalable storage and media trading facility.\u003cbr\u003e\nAs well as a project for training soft, design, programming skills.\u003cbr\u003e\n\u003cb\u003eFeel free to send a pull request or create a issue!\u003c/b\u003e\n\n\u003cbr\u003e\u003cbr\u003e\n\u003ch2\u003eGetting started\u003c/h2\u003e\n\nSetup [git](https://git-scm.com/downloads)\n\u003cbr\u003e\n[Clone](https://docs.github.com/ru/repositories/creating-and-managing-repositories/cloning-a-repository) repository\u003cbr\u003e\nGo to back-end directory:\u003cbr\u003e\n`cd server` \u003cbr\u003e\nCreate \".env\" and \"docker.env\" (Also change the data in s3 and env configuration if you want to work with Place.)\u003cbr\u003e \ndocker.env example:\n```\nDATABASE_URL=postgresql://root@crdb:26257/defaultdb?sslmode=disable\u0026schema=public\nJWT_SECRET=secret-key\nS3_PORT=9000\nS3_ENDPOINT=nginx-minio\nS3_ACCESS_KEY=ACCESS_KEY\nS3_SECRET_KEY=SECRET_KEY\n```\n\u003cbr\u003e\n`npx prisma generate` for connect env with prisma \n\u003ch3\u003eUsing Docker Compose\u003c/h3\u003e\n\nSetup [Docker](https://docs.docker.com/engine/install) and [Docker Compose](https://docs.docker.com/compose/install) \u003cbr\u003e\n\n```docker\ndocker-compose build\ndocker-compose run \n```\n\u003ch3\u003eLocally\u003c/h3\u003e\n\nSetup [npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\u003cbr\u003e\nExecute in terminal:\u003cbr\u003e\n\nSetup nestjs/cli:\u003cbr\u003e\n`npm i -g @nestjs/cli`\u003cbr\u003e\nInstall all dependencies:\u003cbr\u003e\n`npm i`\n\nSetup [CockroachDB](https://www.cockroachlabs.com/docs/v23.2/install-cockroachdb-linux)\u003cbr\u003e\nOpen a new terminal:\u003cbr\u003e\n`cockroach start-single-node --insecure`\n\nSetup [minio](https://min.io/docs/minio/linux/operations/installation.html)\u003cbr\u003e\nOpen a new terminal:\u003cbr\u003e\n\n```cd server\nminio server start\n```\nAnd finally:\u003cbr\u003e\n`npm run start:dev`\n\n\u003ch2\u003eDiscription of Place development \u003c/h2\u003e\n\u003ch2\u003eFormulation of the task:\u003c/h2\u003e\n\u003cp\u003eBuild of a high-load easily scalable service for concluding media contracts between users, file storage and transfer. \u003c/p\u003e\n\u003cp\u003eInclude a own currency, subscription\u003c/p\u003e\n\u003ch3\u003e\u003cspan\u003eRequirements:\u003c/span\u003e\u003c/h3\u003e\nFront-end:\n\u003cul\u003e\n  \u003cli\u003eFast, Simple, Presentable\u003c/li\u003e\n  \u003cli\u003eSolves real problems\u003c/li\u003e\n\u003c/ul\u003e\nSource:\n  \u003cul\u003e\n  \u003cli\u003eOptimized\u003c/li\u003e\n  \u003cli\u003eCompliance with object-oriented programming patterns and paradigms\u003c/li\u003e\n  \u003cli\u003eTesting\u003c/li\u003e\n\u003c/ul\u003e\nBack-end:\n  \u003cul\u003e\n  \u003cli\u003eStand like a million requests in one time\u003c/li\u003e\n  \u003cli\u003eMinimize failures\u003c/li\u003e\n  \u003cli\u003eScalable architecture\u003c/li\u003e\n  \u003cli\u003eOne of the servers may fail - work will continue\u003c/li\u003e\n  \u003cli\u003eAll users must receive contracts\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUser Flow\u003c/h2\u003e\n\u003cimg width=\"4236\" alt=\"User flow\" src=\"https://github.com/sonytruelove/Place/assets/42536061/97ef000c-3258-4142-b37a-98b68a7a46e9\"\u003e\n\u003ch2\u003eArchitecture and Tech Stack(previously)\u003c/h2\u003e\n\n![Architecture](https://github.com/sonytruelove/HA-Contract-service/assets/42536061/94e367de-20e1-4f92-88f1-d445de710e9f)\n\n\n\u003ch3\u003eFront-end\u003c/h3\u003e\nNext.js, Typescript, Webpack\n\u003ch3\u003eBack-end\u003c/h3\u003e \n\u003cul\u003e\n\u003cli\u003eNest.js\u003c/li\u003e\n\u003cli\u003eS3 Minio\u003c/li\u003e\n\u003cli\u003eCockroach DB\u003c/li\u003e\n\u003cli\u003eJWT auth, SwaggerAPI, Typescript, Prisma, Class-validator\u003c/li\u003e\n\u003cli\u003eNginx, Docker, Minicube/K3s/KuberSpray\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch3\u003eWhy no cache?\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFew files to cache\u003c/li\u003e\n\u003cli\u003eWarm-up required\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eWhy no target audience research?\u003c/h3\u003e\nIt's no start-up, so i needn't.\n\u003ch2\u003eTODO:\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Start developing a basic version\u003c/li\u003e\n\u003cli\u003e✅ Describe a requirements\u003c/li\u003e\n\u003cli\u003e✅ Describe a Architecture with Tech-stack\u003c/li\u003e\n\u003cli\u003e✅ Introduce a server part of project\u003c/li\u003e\n\u003cli\u003e✅ Describe a Code-of-Conduct\u003c/li\u003e\n\u003cli\u003e✅ Describe User-flow\u003c/li\u003e\n\u003cli\u003e✅ Develop UI kit\u003c/li\u003e\n\u003cli\u003e✅ Develop Design system\u003c/li\u003e\n\u003cli\u003e✅ Introduce a front-end part of project\u003c/li\u003e\n\u003cli\u003eDo a MVP\u003c/li\u003e\n\u003c/ul\u003e\n\u003cul\u003e\n\u003cli\u003eStart developing the Enterprise version\u003c/li\u003e\n\u003cli\u003eConnect Prometheus+Graphana logger\u003c/li\u003e\n\u003cli\u003eDivide into microservices\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003ch3\u003eRemove TarantoolDB\u003c/h3\u003e\nTarantool DB was intended for fast processing of small data and Cockroach DB for Big Data.\u003cbr\u003e\nBut the hypothesis that files can be stored in Cockroach DB was refuted.\nAlso Prisma ORM doesn't work with Tarantool DB.\n\u003cp\u003e\nSo, Cockroach DB processing all data and Tarantool DB remove from project for now.\n\u003c/p\u003e\n\u003ch3\u003ePlace is free for all contributors who want to make project better\u003c/h3\u003e\nI considered it necessary to have experience in maintain an open source project, as well as to see new ways to develop this project.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonytruelove%2Fplace","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonytruelove%2Fplace","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonytruelove%2Fplace/lists"}