Home

Awesome

<h1 align="center">A simplified Jira clone built with React and Node</h1> <div align="center">Auto formatted with Prettier, tested with Cypress ๐ŸŽ—</div> <h3 align="center"> <a href="https://jira.ivorreic.com/">Visit the live app</a> | <a href="https://github.com/oldboyxx/jira_clone/tree/master/client">View client</a> | <a href="https://github.com/oldboyxx/jira_clone/tree/master/api">View API</a> </h3>

Tech logos

App screenshot

What is this and who is it for ๐Ÿคทโ€โ™€๏ธ

I do React consulting and this is a showcase product I've built in my spare time. It's a very good example of modern, real-world React codebase.

There are many showcase/example React projects out there but most of them are way too simple. I like to think that this codebase contains enough complexity to offer valuable insights to React developers of all skill levels while still being relatively easy to understand.

Features

Setting up development environment ๐Ÿ› 

Running cypress end-to-end tests ๐Ÿšฅ

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 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.

Contributing

I will not be accepting PR's on this repository. Feel free to fork and maintain your own version.

License

MIT

<hr> <h3> <a href="https://jira.ivorreic.com/">Visit the live app</a> | <a href="https://github.com/oldboyxx/jira_clone/tree/master/client">View client</a> | <a href="https://github.com/oldboyxx/jira_clone/tree/master/api">View API</a> </h3>