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…

Что это такое?Упрощённый клон Jira: веб-приложение с клиентом на React/Babel и API на Node/TypeScript. Его сделал консультант по React как витрину современной, приближенной к реальности кодовой базы на React — чтобы её читали и учились по ней, а не как боевой продукт.
Это работающее приложение, которое можно запустить, или просто пример кода?Это полностью работающее приложение, которое запускается локально: клиент и API стартуют как два отдельных npm-процесса, а данными служит ваша собственная база PostgreSQL. При этом автор всё равно называет его витринным проектом — многих вещей, которые нужны настоящему продукту, там намеренно нет.
Как его запустить?Установите PostgreSQL и создайте базу данных с именем jiradevelopment, клонируйте репозиторий, создайте файл /api/.env на основе .env.example, указав там логин и пароль от вашей базы, затем выполните npm run install-dependencies. Запустите API командой npm start в папке /api, а клиент — командой npm start в папке /client в другой вкладке терминала.
Что должно быть установлено заранее?PostgreSQL, а также Node и npm для обоих приложений — больше ничего. Docker и внешние сервисы не используются; просто вписываете данные для подключения к базе в файл /api/.env.
Чего не хватает по сравнению с настоящей Jira?Четыре вещи, по словам автора: нет миграций (TypeORM сам создаёт схему при каждом запуске), нет настоящей аутентификации (любой, кто обратится к API без учётных данных, получит токен и демонстрационные данные), неполная доступность для людей с ограниченными возможностями и нет юнит- и интеграционных тестов — только end-to-end тесты на Cypress.
Чем кодовая база на React интересна для изучения?Только функциональные компоненты с хуками, простое управление локальным состоянием без redux или mobx, собственные лёгкие UI-компоненты вроде datepicker, модального окна и элементов форм, а также собственная настройка webpack вместо create-react-app — плюс структура проекта, которую автор называет проверенной и масштабируемой.
Как тестируется проект?End-to-end тестами на Cypress. Нужно создать вторую базу данных с именем jiratest, запустить API командой npm run start:test и выполнить npm run test:cypress из папки клиента.
Зачем автор его создал?Он занимается консалтингом по React и считает, что большинство показательных React-проектов слишком простые; он хотел кодовую базу с достаточной сложностью, чтобы она давала ценные знания React-разработчикам любого уровня, оставаясь при этом относительно понятной.
Creator
oldboyxx
Size
1.9 MB
Stars
11.1K
Updated
CommitOct 20
Age
6y
Commits · 90 Days