/kanban-app

A Kanban web application featuring an API in NestJs, with Prisma ORM, PostgreSQL and JWT authentication. A user interface created with Next.js and TypeScript, guaranteeing a dynamic experience. It has unit tests via Jest, continuous integration based on Docker and documentation with Swagger and Storybook.

Primary LanguageTypeScript

RUMA - Kanban App

πŸ“’ Introduction

Ruma is an agile Kanban-based project and task management web app. On this platform, you'll be able to create boards, distribute tasks across columns, and enhance productivity. The goal is to simplify project tracking, task allocation, deadlines, and routines.


πŸ“œ Table of contents


βš’οΈ Technologies

Docker NPM Node.js Figma Typescript Nest.js Next.js PostgreSQL Jest.js Prisma JWT Authentication Swagger i18n

πŸ“₯ Installation

To clone the application on your own device, simply run the following command in the terminal:

git clone https://github.com/rodrigsmor/kanban-app.git

Make sure you have the git CLI installed correctly on your device. If you don't have git installed, you can find out how to do this by clicking here.

βš™οΈ Settings

First of all, in order to run the application, you need to create an .env file in the root directory, in which you will define the application's environment variables.

Starting with the database connection environment variables, you will need to configure the following variables:

POSTGRES_DB=<the database name>
POSTGRES_USER=<the database username>
POSTGRES_PASSWORD=<the database user’s password>
DB_PORT=<the host port of your database>

# pay attention to setting the correct values in the database URL
DATABASE_URL=postgres://<database username>:<database password>@db:<database port>/<database name>?schema=public

Once the database variables have been defined, you will need to define other service environment variables related to security, service integration and other details that are important for the smooth running of the application.

# SERVICES PORTS
# You can set the ports however you like
API_PORT=<The pattern is 3000>
FRONTEND_PORT=<The patterns is 3001>

# SECURITY
JWT_SECRET_KEY=<set your secret key to make your API more secure!>
ENCRYPT_SALT=<set an ecrypt salt>

Whew! To complete our configuration, you just need to set some environment variables to allow the application to send emails using the nodemailer library. You will need to set the environment variables below:

# EMAIL SENDER
MAILER_USER=<your e-mail address>
MAILER_PASS=<your e-mail password>
MAILER_SENDER=<the e-mail address responsible for sending the e-mails>
MAILER_HOST=<the SMTP host based on your e-mail address>

Yahoo! You have finished configuring the application and should now be able to run it on your own device.

πŸš€ How to run?

With everything set up correctly, we can now run the application. First of all, you need to build the container images with docker compose. To do this, run the following command in your terminal (remember to run it in the root directory of the project):

docker-compose build

Once the image has been built, simply generate the migrations to the database using prisma, so that you can keep the data and have a more dynamic experience with the application. Just run the command below:

docker-compose run backend npx prisma migrate dev

That’s it! Now you can fully enjoy the application. Just run it on your own device.


πŸƒπŸ½β€β™‚οΈ Runnning the application

Now that all the settings have been made, you can proceed with running the application. To do this, simply run the following command:

docker-compose up

In case the migrations and other settings have been made, you can build and run the container image by executing the following command:

docker-compose up --build

πŸ“š Documentation

In case you want to access the application's documentation, follow the steps above and, once the application is running, simply access the links below:

  • API DOCUMENTATION: http://localhost:3000/docs

That's it! You now have access to an arsenal of information about how the application works and its routes.


βœ… Running tests

If you want to run tests, just run the following commands:

# run backend tests
docker-compose run backend npm run test

🌎 Support links and tutorials

πŸ‘¨πŸ½β€πŸ¦± Author

Rodrigo profile picture

Developed with love by Rodrigo Moreira πŸ’œπŸš€


gmail LinkedIn behance dev.to