GithubHelp home page GithubHelp logo

sonytruelove / place Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.21 MB

:collision: Feel free to send a pull request or create a issue!

Home Page: https://sonytruelove.github.io/Place/

License: MIT License

Dockerfile 1.55% Shell 0.10% TypeScript 96.35% JavaScript 1.92% CSS 0.08%
beginer-friendly devlog docker docker-compose filesystem highload minio nestjs nextjs open-source

place's Introduction

PLACE

PLACE LOGO

EN RU CN


💥PLACE IS OPEN SOURCE FILE SHARING STORAGE


PLACE allows users to store files in the cloud, synchronize files across devices, and share files.
You can set up by yourself OR get our help
I believe that Place will become the best easily scalable storage and media trading facility.
As well as a project for training soft, design, programming skills.
Feel free to send a pull request or create a issue!



Getting started

Setup git
Clone repository
Go to back-end directory:
cd server
Rename "production.env" to ".env"(Also change data in s3 config and env if you want to work with Place)
npx prisma generate for connect env with prisma

Using Docker Compose

Setup Docker and Docker Compose

docker-compose build
docker-compose run 

Locally

Setup npm
Execute in terminal:

Setup nestjs/cli:
npm i -g @nestjs/cli
Install all dependencies:
npm i

Setup CockroachDB
Open a new terminal:
cockroach start-single-node --insecure

Setup minio
Open a new terminal:

minio server start

And finally:
npm run start:dev

Discription of Place development

Formulation of the task:

Build of a high-load easily scalable service for concluding media contracts between users, file storage and transfer.

Include a own currency, subscription

Requirements:

Front-end:
  • Fast, Simple, Presentable
  • Solves real problems
Source:
  • Optimized
  • Compliance with object-oriented programming patterns and paradigms
  • Testing
Back-end:
  • Stand like a million requests in one time
  • Minimize failures
  • Scalable architecture
  • One of the servers may fail - work will continue
  • All users must receive contracts

User Flow

User flow

Architecture and Tech Stack(previously)

Architecture

Front-end

Next.js, Typescript, Webpack

Back-end

  • Nest.js
  • S3 Minio
  • Cockroach DB
  • JWT auth, SwaggerAPI, Typescript, Prisma, Class-validator
  • Nginx, Docker, Minicube/K3s/KuberSpray

Why no cache?

  • Few files to cache
  • Warm-up required

Why no target audience research?

It's no start-up, so i needn't.

TODO:

  • ✅ Describe a requirements
  • ✅ Describe a Architecture with Tech-stack
  • ✅ Introduce a server part of project
  • ✅ Describe a Code-of-Conduct
  • ✅ Describe User-flow
  • Develop UI kit
  • Develop Design system
  • Introduce a front-end part of project
  • Do a MVP
  • ...

Changes

Remove TarantoolDB

Tarantool DB was intended for fast processing of small data and Cockroach DB for Big Data.
But the hypothesis that files can be stored in Cockroach DB was refuted. Also Prisma ORM doesn't work with Tarantool DB.

So, Cockroach DB processing all data and Tarantool DB remove from project for now.

Place is free for all contributors who want to make project better

I considered it necessary to have experience in maintain an open source project, as well as to see new ways to develop this project.

place's People

Contributors

sonytruelove avatar

Stargazers

 avatar

Watchers

 avatar

place's Issues

Add a search controller

Prisma ORM doesn't support search in CockroachDB.
Search by file/place name/url/size and etc.
Feel free to give me a solution!

Fix a svg logo

If you do not follow the template, your issue will still be considered
Type: fix
Message: Sometimes I get warnings in the console about the svg logo on the client

Add a Unique place module

You need to think about how to correctly build the API so that the url looks “beautiful” (Search Engine Friendly).
A unique place must have a unique url within the user

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.