Code Monkey home page Code Monkey logo

canvasboard-backend's Introduction

Canvasboard Backend

All Contributors

Overview πŸ‘€

Canvasboard is an interactive board with plugins focusing on replacing the need of multiple platforms for teaching, presenting, managing or explaining your ideas.

The interactive plugins are built using web technologies to ease your work right within a single platform, this repo adds the esence of being a true full stack project.

Running Backend πŸƒπŸ»β€β™‚οΈ

> Clone the repo
> $ cd canvasboard-backend/apis
> $ npm install
> rename .env_template to .env
> fill in the credentials in .env files

Local Run πŸ’»

> $ cd canvasboard-backend/apis
> $ npm start
> APIs runs on port 4000

Docker Run 🚒

> make sure you have docker up and running
> make sure port 4000 is free
> set node_env=prod in .env file
> $ cd canvasboard-backend
> $ docker-compose up --build
> APIs runs on port 4000

API Docs πŸ“˜

> cd canvasboard-backend/apis/apiDocs/
> select the folder depending the flow
> make sure you have postman installed
> import the <filename>.postman_collection in postman

Tech Stack 🧐

docker express javascript mongodb nginx nodejs

Contributors ✨

Thanks goes to these wonderful people (emoji key):


I'm Navaneeth Nivol

πŸ’» 🚧

Ayon Pal

πŸ’»

Asish Raju

πŸ’» 🚧

This project follows the all-contributors specification. Contributions of any kind welcome!

canvasboard-backend's People

Contributors

akashmrc98 avatar allcontributors[bot] avatar asishraju avatar ayonpal avatar goliakshay357 avatar kajol-kumari avatar lumos-ap avatar navaneethnidadavolu avatar neha-kothari avatar nidhibudhraja avatar seethamraju avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

canvasboard-backend's Issues

Better Looking Email Templates

Problem 🚩

  • Canvasboard sends a verification email to the user upon every new registration and also when the user clicks on forgot password.
  • Currently, they look something like this. πŸ‘‡πŸ»

image

image

  • This email body is written in HTML; existing code can be found here APIs\controllers\authCtrl.js in forget() & register() controllers

Solution Wanted βœ…

  • Come up with a better looking HTML template for the same
  • Use inline css for a more attractive template
  • BONUS: you can use gif too πŸ˜…

Add distroless base image and layer optimization

Requirements

  1. Adding distroless base image,
    Comment: Adding distroless base image ensures shell is not accessible and hence more secure.
  2. Layer optimization for quick and efficient builds.
    Comment: Leveraging cache for faster builds

Implementing Folder Structure

Currently, all files that the user has is directly attached to the user, we want to implement a folder structure,
user--will have-->folders--will have-->files

This will help in keeping the file management clean, so eventually, CURD APIs for the folders are needed and modifying files relationship with the user.

files--will have a relationship with-->folders--will have a relationship with-->user

Make ER diagram from existing schema

Documentation Needed πŸ“ƒ

Canvasboard backend had a well-defined ER diagram, but with constant changes, we didn't get time to update our ER diagram to the latest schema that is being used right now.

Its Reverse Engineering Time; 😎
MongoDB schema is well defined here: APIs\models\collections, it would be great to have an updated ER diagram for the same.

Prefered Tool: Draw.io

note: don't worry about the relation between other tables (collection as we call it the NoSQL world)

Add Forgot Password / Reset Password functionality

Canvasbird uses both vanilla email_id/password login along with google sign in using passport-js strategy,

Whenever a new user registers we send him a confirmation email to reduce spam email registration, we also want a forgot password functionality to be added for obvious reasons and keeping the UX in mind.

Issues template

Issues Template for backend same as which is in the frontend.

Local Setup

It's always better to have a script which can setup local environment.

Postman API Documentation

Documentation Needed πŸ“ƒ

Canvasboard Backend has around 30 APIs, some of the postman docs can be found here as APIs\apiDocs but they are either not properly documented or missing most of the APIs.

Would be great to have a proper well-documented postman collection for all the APIs that canvasboard uses, also attaching some resources below to get you started with the postman documentation. πŸ‘‡πŸ»

Postman Official Blog
Youtube Tutorial

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.