jira_clone README

The project's README from github.com/oldboyxx/jira_clone. As one markdown file: README.md.

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

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


Visit the live app | View client | View API

jira_clone (oldboyxx/jira_clone)

Searching Database…

What is this?A simplified Jira clone: a web app with a React/Babel client and a Node/TypeScript API. A React consultant built it as a showcase of a modern, real-world React codebase to read and learn from, not as a production product.
Is it a working app I can run, or just a code sample?It's a fully working app you run locally: the client and the API start as two separate npm processes, backed by your own PostgreSQL database. The author still frames it as a showcase product, though — several things a real product needs are deliberately missing.
How do I get it running?Install PostgreSQL and create a database named jiradevelopment, clone the repo, create /api/.env from .env.example with your DB username and password, then run npm run install-dependencies. Start the API with npm start in /api, and the client with npm start in /client in another terminal tab.
What do I need to have installed first?PostgreSQL, plus Node and npm for both apps — nothing else. No Docker or external services are involved; you just put your database credentials into the /api/.env file.
What's missing compared to a real Jira?Four things, per the author: no migrations (TypeORM auto-creates the schema on every launch), no real authentication (anyone hitting the API without credentials gets a token and seeded demo data), incomplete accessibility, and no unit/integration tests — only Cypress end-to-end tests.
What makes the React codebase worth studying?Only functional components with hooks, simple local state management without redux or mobx, custom light-weight UI components like a datepicker, modal and form elements, and a custom webpack setup instead of create-react-app — plus a project structure the author calls proven and scalable.
How is it tested?End-to-end with Cypress. You create a second database named jiratest, start the API with npm run start:test, and run npm run test:cypress from the client folder.
Why did the author build it?He does React consulting and felt most showcase React projects are too simple; he wanted a codebase with enough complexity to offer valuable insights to React developers of all skill levels while staying relatively easy to understand.
Creator
oldboyxx
Size
1.9 MB
Stars
11.1K
Updated
CommitOct 20
Age
6y
Commits · 90 Days