Compare commits

...

11 Commits

Author SHA1 Message Date
Moritz Marquardt
fa2c1f18f2 Merge pull request #14 from moqmar/feature/information
Include information about the fork in README
2020-03-13 14:21:19 +01:00
Moritz Marquardt
0d6b748a97 Include information about the fork in README 2020-03-10 21:44:40 +01:00
Leopere
8dfcd680a4 Merge pull request #2 from colbyeg/add-postgres-12-support
upgraded typeorm dependency
2020-02-08 10:57:21 -05:00
Leopere
6221969d60 Merge pull request #1 from dskiba/patch-1
Patch 1
2020-02-08 10:56:16 -05:00
Denis Skiba
17a14fb54b Merge branch 'master' into patch-1 2020-02-05 18:20:00 +04:00
Leopere
c7b01c6ad3 Loose guidelines for CONTRIBUTING.md 2020-02-01 14:50:59 -05:00
Denis Skiba
cb7710378d Improve effect
There is no need to create function each time when history changes and do not use it.
2020-02-01 12:10:43 +07:00
ireic
190dfcd9dc Readme formatting 2020-01-29 03:27:09 +01:00
ireic
9ec69d7149 Added contributing guidelines 2020-01-29 03:24:46 +01:00
Colin_
40a15d126f Added basic Docker support 2020-01-28 20:07:17 -05:00
Colby Gavin
daf334f73b upgraded typeorm dependency 2020-01-27 15:02:41 -05:00
8 changed files with 102 additions and 33 deletions

3
.gitignore vendored
View File

@@ -10,3 +10,6 @@
# production
**/build
**/npm-debug.log*
# Persistence Directory for Docker
**/persist

0
CONTRIBUTING.md Normal file
View File

7
Dockerfile Normal file
View 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"]

View File

@@ -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> &bull;
<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>
![Tech logos](https://i.ibb.co/DVFj8PL/tech-icons.jpg)
![App screenshot](https://i.ibb.co/W3qVvCn/jira-optimized.jpg)
## 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

View File

@@ -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",

View File

@@ -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
View 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
View 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