Git Product home page Git Product logo

trelloclonebackend's Introduction

Trello Alternative

Trello Alternative is an Clone App of Trello.

Trello Alternative is an app inspired totally by Trello, contains multiple features:

  • User authentication: Get a JSON Web Token, Refresh that token (Using cookies)
  • Workspace creation: You can divide your work into pieces and create a workspace for each one, by default once you sign up, you will get your private Workspace.
  • Board creation: As Trello, inside the workspace, you can define a board for a specific Project. For Example: Programming
  • List creation: These are created inside the boards. For Example: List: "Personal Projects" inside PROGRAMMING Board
  • Card creation: Cards exist inside Lists and these are the most important, because there you can upload attachments, add members, add tasks, and manage each project you have. For Example: Card "Trello Clone" inside PERSONAL PROJECTS List
  • Attachments: This App was made to store information not locally, instead it is using Google Cloud Storage,so we don't have to worry about the space, but can have everything stored in the cloud

Important dependencies:

  • @google-cloud/storage
  • cookie-parser
  • class-validator
  • passport
  • jsonwebtoken
  • bcrypt

Download Postman workspace to test

Postman API Documentation

Status: FINISHED

Key things to start the project using NESTJS

If you're planning to start a new project, then you can simply run:

npm i -g @nestjs/cli
nest new <Project-name>

To install the dependencies of this one and run the project

npm install
npm run start:dev

For more information, check NestJS documentation: https://docs.nestjs.com/

Note: as this is not running LIVE, you must create your OWN .env file to handle your environment variables.

.ENV structure:
DB_QUERY = Include your MongoDB Query String
ACCESS_TOKEN = This is a random string created
REFRESH_TOKEN = This is a random string created, not the same as ACCESS_TOKEN
ACCESS_TOKEN_DURATION = Duration of the AT, for example: 30s, 30m, 24h, 1d
REFRESH_TOKEN_DURATION = Duration of the RT, for example: 30s, 30m, 24h, 1d, MAKE SURE TO BE BIGGER THAN AT DURATION

The next 4 variables are obtained from Google Cloud Platform, KEEP THEM SECRET

PROJECT_ID = This is your project ID from GCP
CLIENT_EMAIL = Not your email address, but the email you specify in your project
BUCKET = The name of the bucket you created before
PRIVATE_KEY = This is the Private Key you receive when generating it, make sure to copy from -----BEGIN UNTIL END PRIVATE KEY-----\n

If you would like to know how to integrate GCP in the project

  1. Start a plan, go to Google Cloud Platform
  2. Create a Project with any name
  3. Once you create the project, navigate to IAM & Admin -> Admin, by default you will have a Principal with your email and name, click on the Pencil and add "Storage Admin", Owner should be already select
  4. Once the Role is added, navigate under the same IAM & Admin menu, to "Service Account"
  5. Click on "Create Service Account" and enter all the info

    It should look like this, then click on it

  6. Go to permissions and add "Cloud Run Service Agent" to the service account you just created
  7. Navigate to Keys, click on "Add Key", "Create New Key", "JSON"
  8. A download should generate and should receive a file with the following sintax:
      {
        "type": "service_account",
        "project_id": "YOUR-PROJECT-ID",
        "private_key_id": "YOUR-PRIVATE-KEY_ID",
        "private_key": "-----BEGIN PRIVATE KEY-----YOUR-PRIVATE-KEY-----END PRIVATE KEY-----\n",
        "client_email": "YOUR-CLIENT-EMAIL",
        "client_id": "CLIENT-ID",
        "auth_uri": "",
        "token_uri": "",
        "auth_provider_x509_cert_url": "",
        "client_x509_cert_url": "",
        "universe_domain": "googleapis.com"
      }
    
  9. After all of this, then we need to create a BUCKET, this is where the info will be stored, Go to the main Menu -> Cloud Storage -> Bucket, under Configuration, you can change the permissions to "Fine-Grained"

trelloclonebackend's People

Contributors

alvmenpal9 avatar

Watchers

 avatar

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.