/traefikDemo

Primary LanguageTypeScript

To Do List

About project

image This project was developed to practice the skills on a full stack situation.

https://www.figma.com/file/EnvCv0sWpsBNOXML70cER8/My-Todo-List?node-id=0%3A1


- Application Description

In this application you can control your activities.To start you must add tasks on Create Mode, after that you can edit any task description by entering on Edit Mode, change the status by the Actions, and search a task by description on Search Mode, and if you want to organize by description, status or created date, use the button imageimage

- Create Mode

The Create Mode is the default mode.

To add a task, start to write the description on input bar and save by clicking on save button, after this, the task will appear in the table with the description, status, creation date and available actions

image

- Actions

You can change the status of your task by clicking on the images on action column (image pending,image ongoing, image done) and if you prefer you can image delete the task.

image

- Edit Mode

To edit the task Description, click on button image beside of task description, on clicking you have to write the new description on input and click on update button to submit

image

- Search Mode

To search a task, you have to activate Search Mode by clicking on buttonimageand write a key word on input bar,after that it will only show tasks with description compatible with the search, and to finish the search you have to click on image

image

Roadmap

  • Show task list;
  • Insert a new task;
  • Remove a task;
  • Update a task description;
  • Update the status of the task;
  • Sort the tasks by description, status or date;
  • Back End integration tests;
  • Front End unit tests;

Skills

On FrontEnd:

  • React, Next, TypeScript and Tailwindcss to create the pages;
  • React useState, useEffect and Hooks to manage state;
  • Unit test using Jest;

On BackEnd:

  • Use Docker and Docker-compose to manage container environment;
  • Use MSC architecture;
  • Use TypeScript and OOP(Object-Oriented Programming) with SOLID principles;
  • Use Express framework from Node.js and ORM library Sequelize for MySQL database modeling;
  • Integration tests using Mocha, chain & sinnon;

Opening the app locally

On terminal:

  1. Please install or check the version of the following services on your system:

NPM & Node on version 8.5.5 & v16.15.0

  npm -v
  node -v

Docker on version 20.10.17

  docker -v

Docker-Compose on version 1.29.2

  docker-compose -v
  1. Clone the repository
  git clone git@github.com:rtxnak/todo-list.git
  1. Install the dependencies
  • move to app folder:

       cd todo-list
  • Install dependencies:

        npm run install:frontend
        npm run install:backend
  1. build docker-compose
  npm run compose:up
  1. The application can be accessed through:

    http://localhost:3000/

  2. Finish the application

  npm run compose:down