Skip to content

ekudryavcev/flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flow

Flow is an online kanban board with an emphasis on bug reporting. This is a portfolio project and the coursework for the MIPT full-stack development course.

Functionality

To take a look at the kanban board, you can either start a NodeJS server or run the Django server and test a randomly generated board.

You'll see a five-column board with a number of cards already in it. Cards will have:

  • Name
  • Description (optional)
  • Tasklist (optional)
  • Tags (optional)
  • Assignees (optional)
  • Creator and creation date

Board view demo

You can move the cards by dragging them into columns. New cards can be added with the plus buttons at the top and the bottom of each column.

To see more details about a card and edit it, click on it to display it full-screen. Now you can manage its properties, move it to another column, archive and delete it.

Card view demo

Things that need to be added in the near future: integration with the backend, authorisation, adding new tags and assignees.

Frameworks

This frontend-heavy project builds on the latest development trends, making use of the following tools:

Project structure

The project is divided into two directories - flow_backend and flow_frontend. The former contains everything server-related, including the database and, in production - packed frontend code. The latter has all the frontend source files, and also is the Node.JS project home.

Frontend

The major frontend subfolders are src and public. public contains CSS styles, linked JS scripts, image files and fonts. It also has the app's index.html file.

src has the source JavaScript files. These include the React components in separate folders under src/components, a binary heap implementstion, a User class and the ShortcutJS source files. It also contains a file with "lorem ipsum" generated placeholders for testing purposes.

After built, the project has the frontend code packed into the flow_frontend/build directory.

Backend

In Django, the app has the name "flow" and keeps the app-specific database-related files, such as models.py or migrations, in flow_backend/flow. Other files, such as settings.py, are in flow_backend/flow_backend. The database itself and the manage.py are in flow_backend. To serve, the frontend is packed with npm run build and saved to flow_backend/templates.

These two folders will be packed into separate Docker containers.

Database

The models are described in flow_backend/flow/models.py, and consist of the following:

  • Card - individual cards, with lists of tags and users assigned to them
  • Column - columns of a board, with lists of cards
  • Board - a single board, with lists of columns, cards, tags and users that have access to it
  • Tag - tags that are used in the boards
  • User - a derivative of the Django User model
  • BoardsToUsers - relations between users and boards they have access to

Test and build

Frontend

In the flow_frontend directory, you can run:

npm start

Runs the app in the development mode. Open http://localhost:3000 to view it in the browser.

Right now you can open URLs such as:

The page will reload if you make edits. You will also see any lint errors in the console.

npm run build

Builds the app for production to the build folder. It correctly bundles React in production mode and optimizes the build for the best performance. The build is minified and the filenames include the hashes. To deploy, move the result to flow_backend/templates.

Backend

In the flow_backend directory, you can run:

manage.py runserver

Runs the Django appserver. Open http://localhost:8000 to view it in the browser.

Right now you can open URLs such as:

manage.py shell

Runs an interactive Python console to administer the server

About

A Kanban-inspired bug tracker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published