Compare commits
11 Commits
87888916a7
...
fa2c1f18f2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fa2c1f18f2 | ||
|
|
0d6b748a97 | ||
|
|
8dfcd680a4 | ||
|
|
6221969d60 | ||
|
|
17a14fb54b | ||
|
|
c7b01c6ad3 | ||
|
|
cb7710378d | ||
|
|
190dfcd9dc | ||
|
|
9ec69d7149 | ||
|
|
40a15d126f | ||
|
|
daf334f73b |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -10,3 +10,6 @@
|
||||
# production
|
||||
**/build
|
||||
**/npm-debug.log*
|
||||
|
||||
# Persistence Directory for Docker
|
||||
**/persist
|
||||
|
||||
0
CONTRIBUTING.md
Normal file
0
CONTRIBUTING.md
Normal file
7
Dockerfile
Normal file
7
Dockerfile
Normal file
@@ -0,0 +1,7 @@
|
||||
FROM node:lts-alpine
|
||||
RUN adduser jira-clone --gecos GECOS --shell /bin/bash --disabled-password --home /app
|
||||
COPY . /app
|
||||
WORKDIR /app
|
||||
RUN npm run install-dependencies && \
|
||||
cp -v /app/docker/entrypoint.sh /usr/bin/entrypoint
|
||||
ENTRYPOINT ["entrypoint"]
|
||||
48
README.md
48
README.md
@@ -1,22 +1,25 @@
|
||||
<h1 align="center">A simplified Jira clone built with React and Node</h1>
|
||||
# :large_blue_diamond: FauxJira - A simplified Jira clone built with React and Node
|
||||
|
||||
<div align="center">Auto formatted with Prettier, tested with Cypress 🎗</div>
|
||||
This is a maintained fork of [the demonstrative project by Ivor Reic](https://github.com/oldboyxx/jira_clone) that strives to be a full alternative to Jira or other project management tools. Currently it's working for demonstration purposes, but is missing authentication and more.
|
||||
|
||||
<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>
|
||||
**As opposed to the original project, we *do* accept Pull Requests and would be glad to receive lots of them!**
|
||||
|
||||
<h3>
|
||||
<!--<a href="https://jira.ivorreic.com/">Visit the live app</a> |-->
|
||||
:memo: <a href="https://github.com/FauxJira/FauxJira/tree/master/client">Client</a> •
|
||||
<a href="https://github.com/FauxJira/FauxJira/tree/master/api">Server/API</a><br>
|
||||
:speech_balloon: <a href="https://rocket.fauxjira.xyz">Discussion on Rocket.Chat</a>
|
||||
</h3>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
This originated in a showcase product by Ivor Reic. 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.
|
||||
We want to build upon it in this fork and create a real, usable application for project management.
|
||||
|
||||
> 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
|
||||
|
||||
@@ -31,7 +34,7 @@ There are many showcase/example React projects out there but most of them are wa
|
||||
## Setting up development environment 🛠
|
||||
|
||||
- Install [postgreSQL](https://www.postgresql.org/) if you don't have it already and create a database named `jira_development`.
|
||||
- `git clone https://github.com/oldboyxx/jira_clone.git`
|
||||
- `git clone https://github.com/FauxJira/FauxJira.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`
|
||||
@@ -46,7 +49,7 @@ There are many showcase/example React projects out there but most of them are wa
|
||||
|
||||
## What's missing?
|
||||
|
||||
There are features missing from this showcase product which should exist in a real product:
|
||||
There are features missing at the current state which we're working on:
|
||||
|
||||
### Migrations 🗄
|
||||
|
||||
@@ -62,21 +65,8 @@ Not all components have properly defined [aria attributes](https://developer.moz
|
||||
|
||||
### Unit/Integration tests 🧪
|
||||
|
||||
Both Client and API are currently tested through [end-to-end Cypress tests](https://github.com/oldboyxx/jira_clone/tree/master/client/cypress/integration). 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.
|
||||
Both Client and API are currently tested through [end-to-end Cypress tests](https://github.com/FauxJira/FauxJira/tree/master/client/cypress/integration). 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 ✍️
|
||||
|
||||
- Website: https://getivor.com/
|
||||
- Skype handle: ivor.reic 💬
|
||||
|
||||
### License
|
||||
|
||||
[MIT](https://opensource.org/licenses/MIT)
|
||||
|
||||
<hr>
|
||||
|
||||
<h4>
|
||||
<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>
|
||||
</h4>
|
||||
## Contributors
|
||||
- [Ivor Reic](https://getivor.com/): Original Author
|
||||
- [Leopere](https://github.com/Leopere): Creator of this Fork
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"pg": "^7.14.0",
|
||||
"reflect-metadata": "^0.1.13",
|
||||
"striptags": "^3.1.1",
|
||||
"typeorm": "^0.2.20"
|
||||
"typeorm": "^0.2.21"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/cors": "^2.8.6",
|
||||
|
||||
@@ -10,7 +10,8 @@ const Authenticate = () => {
|
||||
const history = useHistory();
|
||||
|
||||
useEffect(() => {
|
||||
const createGuestAccount = async () => {
|
||||
if (!getStoredAuthToken()) {
|
||||
const createGuestAccount = async () => {
|
||||
try {
|
||||
const { authToken } = await api.post('/authentication/guest');
|
||||
storeAuthToken(authToken);
|
||||
@@ -19,8 +20,6 @@ const Authenticate = () => {
|
||||
toast.error(error);
|
||||
}
|
||||
};
|
||||
|
||||
if (!getStoredAuthToken()) {
|
||||
createGuestAccount();
|
||||
}
|
||||
}, [history]);
|
||||
|
||||
57
docker-compose.yml
Normal file
57
docker-compose.yml
Normal file
@@ -0,0 +1,57 @@
|
||||
version: "3.4"
|
||||
|
||||
services:
|
||||
db:
|
||||
image: postgres:9.6-alpine
|
||||
restart: always
|
||||
environment:
|
||||
- POSTGRES_USER=jira-clone
|
||||
- POSTGRES_PASSWORD=jira-clone
|
||||
- POSTGRES_DB=jira-clone
|
||||
networks:
|
||||
- default
|
||||
volumes:
|
||||
- ./persist/db/git:/var/lib/postgresql/data
|
||||
|
||||
api:
|
||||
build: .
|
||||
restart: always
|
||||
environment:
|
||||
- NODE_ENV=development
|
||||
- DB_HOST=db
|
||||
- DB_PORT=5432
|
||||
- DB_USERNAME=jira-clone
|
||||
- DB_PASSWORD=jira-clone
|
||||
- DB_DATABASE=jira-clone
|
||||
## Please change this string to something unique.
|
||||
- JWT_SECRET=development12345
|
||||
command: ["api"]
|
||||
depends_on:
|
||||
- db
|
||||
networks:
|
||||
- default
|
||||
|
||||
client:
|
||||
build: .
|
||||
restart: always
|
||||
environment:
|
||||
ports:
|
||||
- 8080:8080
|
||||
networks:
|
||||
- default
|
||||
environment:
|
||||
- RUN_MODE=api
|
||||
- NODE_ENV=development
|
||||
- DB_HOST=localhost
|
||||
- DB_PORT=5432
|
||||
- DB_USERNAME=jira-clone
|
||||
- DB_PASSWORD=jira-clone
|
||||
- DB_DATABASE=jira-clone
|
||||
## Please change this string to something unique.
|
||||
- JWT_SECRET=development12345
|
||||
depends_on:
|
||||
- api
|
||||
command: ["client"]
|
||||
|
||||
networks:
|
||||
default:
|
||||
13
docker/entrypoint.sh
Executable file
13
docker/entrypoint.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env sh
|
||||
case $1 in
|
||||
api )
|
||||
cd /app/api/ && npm start
|
||||
;;
|
||||
client )
|
||||
cd /app/client && npm start
|
||||
;;
|
||||
* )
|
||||
echo "The only two supported run modes are client and api, giving you a shell instead."
|
||||
/bin/sh
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user