2020-01-22 23:26:11 +01:00
2019-12-03 20:39:54 +01:00
2020-01-12 01:59:08 +01:00
2020-01-22 23:26:11 +01:00
2019-12-03 15:38:53 +01:00
2020-01-22 23:26:11 +01:00

A simplified Jira clone built with React and Node

Auto formatted with Prettier, tested with Cypress 🎗

Visit the live app | View client | View API

Tech logos

App screenshot

Setting up development environment 🛠

  • Install postgreSQL if you don't have it already and create a database named jira_development.
  • git clone https://github.com/oldboyxx/jira_clone.git
  • Create an empty .env file in /api, copy /api/.env.example contents into it, and fill in your database username and password.
  • npm run install-dependencies
  • cd api && npm start
  • cd client && npm start in another terminal tab
  • App should now be running on http://localhost:8080/

Running cypress end-to-end tests 🚥

  • Set up development environment
  • Create a database named jira_test and start the api with cd api && npm run start:test
  • cd client && npm run test:cypress

What's missing?

There are features missing from this showcase product which should exist in a real product:

Migrations 🗄

We're currently using TypeORM's synchronize feature which auto creates the database schema on every application launch. It's fine to do this in a showcase product or during early development while the product is not used by anyone, but before going live with a real product, we should introduce migrations.

Proper authentication system 🔐

We currently auto create an auth token and seed a project with issues and users for anyone who visits the API without valid credentials. In a real product we'd want to implement a proper email and password authentication system.

Accessibility

Not all components have properly defined aria attributes, visual focus indicators etc. Most early stage companies tend to ignore this aspect of their product but in many cases they shouldn't, especially once their userbase starts growing.

Unit/Integration tests 🧪

Both Client and API are currently tested by through end-to-end Cypress tests. That's good enough for a relatively simple application such as this, even if it was a real product. However, as the app grows in complexity, it might be wise to start writing additional unit/integration tests.

Author: Ivor Reic ✍️


Visit the live app | View client | View API

Description
No description provided
Readme MIT 2 MiB
Languages
JavaScript 84.6%
TypeScript 14.6%
CSS 0.5%