Updated to newest node, refactored for heroku

This commit is contained in:
Senad Uka
2019-03-14 05:41:06 +01:00
parent 7fc24add1f
commit a4ed76e29b
26 changed files with 60 additions and 106 deletions

View File

@@ -2,19 +2,19 @@ import React from "react";
import PropTypes from "prop-types"; import PropTypes from "prop-types";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { ITEMS_CHANGED, USER_DATA_CHANGED } from "constants/actionTypes"; import { ITEMS_CHANGED, USER_DATA_CHANGED } from "../constants/actionTypes";
import { areObjectEqual } from "utils/helpers"; import { areObjectEqual } from "../utils/helpers";
import { createOlxLink } from "utils/createOlxLink"; import { createOlxLink } from "../utils/createOlxLink";
import axios from "axios"; import axios from "axios";
import image from "assets/img/sidebar-1.jpg"; import image from "../assets/img/sidebar-1.jpg";
import logo from "assets/img/reactlogo.png"; import logo from "../assets/img/reactlogo.png";
import Sidebar from "components/Sidebar.js"; import Sidebar from "../components/Sidebar.js";
import ItemsContainer from "./items/itemscontainer/ItemsContainer"; import ItemsContainer from "./items/itemscontainer/ItemsContainer";
import NotificationModal from "./NotificationModal"; import NotificationModal from "./NotificationModal";
import dashboardStyle from "assets/dashboardStyle.js"; import dashboardStyle from "../assets/dashboardStyle.js";
const mapStateToProps = state => { const mapStateToProps = state => {
return { return {

View File

@@ -5,8 +5,8 @@ import DialogContent from "@material-ui/core/DialogContent";
import DialogActions from "@material-ui/core/DialogActions"; import DialogActions from "@material-ui/core/DialogActions";
import Slide from "@material-ui/core/Slide"; import Slide from "@material-ui/core/Slide";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import { notificationmodalwrapper } from "utils/notificationmodalwrapper"; import { notificationmodalwrapper } from "../utils/notificationmodalwrapper";
import modalStyle from "assets/modalStyle.js"; import modalStyle from "../assets/modalStyle.js";
import Button from "@material-ui/core/Button"; import Button from "@material-ui/core/Button";
import IconButton from "@material-ui/core/IconButton"; import IconButton from "@material-ui/core/IconButton";
import Close from "@material-ui/icons/Close"; import Close from "@material-ui/icons/Close";

View File

@@ -12,16 +12,15 @@ import ExpandMore from "@material-ui/icons/ExpandMore";
import Collapse from "@material-ui/core/Collapse"; import Collapse from "@material-ui/core/Collapse";
import StarBorder from "@material-ui/icons/StarBorder"; import StarBorder from "@material-ui/icons/StarBorder";
import sidebarStyle from "assets/sidebarStyle.js"; import sidebarStyle from "../assets/sidebarStyle.js";
import CollapseWrapperStyled from "components/widgets/CollapseWrapperStyled"; import CollapseWrapperStyled from "../components/widgets/CollapseWrapperStyled";
import DeepCategoryWrapper from "./widgets/DeepCategoryWrapper"; import DeepCategoryWrapper from "./widgets/DeepCategoryWrapper";
import { hoc } from "utils/helpers"; import { hoc } from "../utils/helpers";
import * as Vozila from "./categories/Vozila";
import * as Nekretnine from "./categories/Nekretnine"; import * as Nekretnine from "./categories/Nekretnine";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { CATEGORY_SELECT } from "constants/actionTypes"; import { CATEGORY_SELECT } from "../constants/actionTypes";
const options = [ const options = [
{ value: "Nekretnine", label: "Nekretnine" } { value: "Nekretnine", label: "Nekretnine" }

View File

@@ -1,20 +0,0 @@
import React from "react";
import Automobili from "../subcategories/vozila/Automobili";
import Motocikli from "../subcategories/vozila/Motocikli";
const options = [
{ value: 18, label: "Automobili" },
{ value: 21, label: "Motocikli" }
];
const depth = 0;
const childrenComponents = {
18: <Automobili />,
21: <Motocikli />
};
export const properties = {
options,
depth,
childrenComponents
};

View File

@@ -1,9 +1,9 @@
import React from "react"; import React from "react";
import * as Filters from "./AllFiltersDefined"; import * as Filters from "./AllFiltersDefined";
import CheckboxAndRadioWrapper from "components/widgets/CheckboxAndRadioWrapper"; import CheckboxAndRadioWrapper from "../../widgets/CheckboxAndRadioWrapper";
import SelectDisplayCheckboxWrapper from "components/widgets/SelectDisplayCheckboxWrapper"; import SelectDisplayCheckboxWrapper from "../../widgets/SelectDisplayCheckboxWrapper";
import RangeWrapper from "components/widgets/RangeWrapper"; import RangeWrapper from "../../widgets/RangeWrapper";
import DropDownWrapper from "components/widgets/DropDownWrapper"; import DropDownWrapper from "../../widgets/DropDownWrapper";
const Kanton = ( const Kanton = (
<DropDownWrapper componentName="Lokacija" {...Filters.lokacijaOptions} /> <DropDownWrapper componentName="Lokacija" {...Filters.lokacijaOptions} />

View File

@@ -1,4 +1,4 @@
import { WrapAll } from "components/widgets/CollapseWrapperAll"; import { WrapAll } from "../../widgets/CollapseWrapperAll";
import { import {
Kanton, Kanton,
Grad, Grad,
@@ -7,7 +7,7 @@ import {
Vrsta, Vrsta,
Kvadratura, Kvadratura,
DodatnoZaKucu DodatnoZaKucu
} from "components/filters/NekretnineFilter/index"; } from "../../filters/NekretnineFilter/index";
const KuceFilters = [ const KuceFilters = [
Kanton, Kanton,

View File

@@ -1,4 +1,4 @@
import { WrapAll } from "components/widgets/CollapseWrapperAll"; import { WrapAll } from "../../widgets/CollapseWrapperAll";
import { import {
Kanton, Kanton,
Grad, Grad,
@@ -7,7 +7,7 @@ import {
Vrsta, Vrsta,
Kvadratura, Kvadratura,
DodatnoZaStan DodatnoZaStan
} from "components/filters/NekretnineFilter/index"; } from "../../filters/NekretnineFilter/index";
const StanFilters = [ const StanFilters = [
Kanton, Kanton,

View File

@@ -1,29 +0,0 @@
import { WrapAll } from "components/widgets/CollapseWrapperAll";
import {
Proizvodac,
Kanton,
Grad,
Cijena,
Stanje,
Vrsta,
Godiste,
KilometraMin,
KilometraMax,
Gorivo
} from "components/filters/VozilaFilter/index";
const AutomobiliFilters = [
Proizvodac,
Kanton,
Grad,
Cijena,
Stanje,
Vrsta,
Godiste,
KilometraMin,
KilometraMax,
Gorivo
];
const Automobili = () => WrapAll(AutomobiliFilters);
export default Automobili;

View File

@@ -1,8 +1,8 @@
import React from "react"; import React from "react";
import { optionchangewrapper } from "utils/optionchangewrapper"; import { optionchangewrapper } from "../../utils/optionchangewrapper";
import Checkbox from "@material-ui/core/Checkbox"; import Checkbox from "@material-ui/core/Checkbox";
import Radio from "@material-ui/core/Radio"; import Radio from "@material-ui/core/Radio";
import "assets/checkboxAndRadioStyle.css"; import "../../assets/checkboxAndRadioStyle.css";
class CheckboxAndRadioWrapper extends React.Component { class CheckboxAndRadioWrapper extends React.Component {
optionChange = (option, optionName, type) => { optionChange = (option, optionName, type) => {

View File

@@ -1,9 +1,9 @@
import React from "react"; import React from "react";
import { connect } from "react-redux"; import { connect } from "react-redux";
import { OPTION_EXPAND_CHANGE } from "constants/actionTypes"; import { OPTION_EXPAND_CHANGE } from "../../constants/actionTypes";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import sidebarStyle from "assets/sidebarStyle.js"; import sidebarStyle from "../../assets/sidebarStyle.js";
import Collapse from "@material-ui/core/Collapse"; import Collapse from "@material-ui/core/Collapse";
import ListItem from "@material-ui/core/ListItem"; import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon"; import ListItemIcon from "@material-ui/core/ListItemIcon";

View File

@@ -1,9 +1,9 @@
import React from "react"; import React from "react";
import { subcategorywrapper } from "utils/subcategorywrapper"; import { subcategorywrapper } from "../../utils/subcategorywrapper";
import { hoc } from "utils/helpers"; import { hoc } from "../../utils/helpers";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import sidebarStyle from "assets/sidebarStyle.js"; import sidebarStyle from "../../assets/sidebarStyle.js";
import List from "@material-ui/core/List"; import List from "@material-ui/core/List";
import ListItem from "@material-ui/core/ListItem"; import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon"; import ListItemIcon from "@material-ui/core/ListItemIcon";

View File

@@ -1,12 +1,12 @@
import React from "react"; import React from "react";
import { optionchangewrapper } from "utils/optionchangewrapper"; import { optionchangewrapper } from "../../utils/optionchangewrapper";
import withStyles from "@material-ui/core/styles/withStyles"; import withStyles from "@material-ui/core/styles/withStyles";
import List from "@material-ui/core/List"; import List from "@material-ui/core/List";
import ListItem from "@material-ui/core/ListItem"; import ListItem from "@material-ui/core/ListItem";
import ListItemIcon from "@material-ui/core/ListItemIcon"; import ListItemIcon from "@material-ui/core/ListItemIcon";
import ListItemText from "@material-ui/core/ListItemText"; import ListItemText from "@material-ui/core/ListItemText";
import sidebarStyle from "assets/sidebarStyle.js"; import sidebarStyle from "../../assets/sidebarStyle.js";
import StarBorder from "@material-ui/icons/StarBorder"; import StarBorder from "@material-ui/icons/StarBorder";
class DropdownWrapper extends React.Component { class DropdownWrapper extends React.Component {

View File

@@ -1,7 +1,7 @@
import React from "react"; import React from "react";
import { Range } from "rc-slider"; import { Range } from "rc-slider";
import { optionchangewrapper } from "utils/optionchangewrapper"; import { optionchangewrapper } from "../../utils/optionchangewrapper";
import "assets/rangeStyle.css"; import "../../assets/rangeStyle.css";
import "rc-slider/assets/index.css"; import "rc-slider/assets/index.css";
import Input from "@material-ui/core/Input"; import Input from "@material-ui/core/Input";

View File

@@ -1,6 +1,6 @@
import React from "react"; import React from "react";
import CheckboxAndRadioWrapper from "components/widgets/CheckboxAndRadioWrapper"; import CheckboxAndRadioWrapper from "../../components/widgets/CheckboxAndRadioWrapper";
import { optionchangewrapper } from "utils/optionchangewrapper"; import { optionchangewrapper } from "../../utils/optionchangewrapper";
class SelectDisplayCheckboxWrapper extends React.Component { class SelectDisplayCheckboxWrapper extends React.Component {
render() { render() {

View File

@@ -1,4 +1,4 @@
import { CATEGORY_SELECT } from "constants/actionTypes"; import { CATEGORY_SELECT } from "../constants/actionTypes";
export default (state = null, action) => { export default (state = null, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -3,7 +3,7 @@ import {
SUBCATEGORY_SELECT, SUBCATEGORY_SELECT,
CATEGORY_SELECT, CATEGORY_SELECT,
OPTION_CHANGE OPTION_CHANGE
} from "constants/actionTypes"; } from "../constants/actionTypes";
export default (state = [], action) => { export default (state = [], action) => {
switch (action.type) { switch (action.type) {

View File

@@ -1,4 +1,4 @@
import { MODAL_CLOSE, MODAL_OPEN } from "constants/actionTypes"; import { MODAL_CLOSE, MODAL_OPEN } from "../constants/actionTypes";
export default (state = false, action) => { export default (state = false, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -2,7 +2,7 @@ import {
SUBCATEGORY_SELECT, SUBCATEGORY_SELECT,
CATEGORY_SELECT, CATEGORY_SELECT,
OPTION_CHANGE OPTION_CHANGE
} from "constants/actionTypes"; } from "../constants/actionTypes";
export default (state = {}, action) => { export default (state = {}, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -1,4 +1,4 @@
import { SUBCATEGORY_SELECT, CATEGORY_SELECT } from "constants/actionTypes"; import { SUBCATEGORY_SELECT, CATEGORY_SELECT } from "../constants/actionTypes";
export default (state = {}, action) => { export default (state = {}, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -2,7 +2,7 @@ import {
OPTION_EXPAND_CHANGE, OPTION_EXPAND_CHANGE,
CATEGORY_SELECT, CATEGORY_SELECT,
SUBCATEGORY_SELECT SUBCATEGORY_SELECT
} from "constants/actionTypes"; } from "../constants/actionTypes";
export default (state = {}, action) => { export default (state = {}, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -1,4 +1,4 @@
import { USER_DATA_CHANGED } from "constants/actionTypes"; import { USER_DATA_CHANGED } from "../constants/actionTypes";
export default (state = {}, action) => { export default (state = {}, action) => {
switch (action.type) { switch (action.type) {

View File

@@ -3,7 +3,7 @@ import {
MODAL_CLOSE, MODAL_CLOSE,
MODAL_OPEN, MODAL_OPEN,
USER_DATA_CHANGED USER_DATA_CHANGED
} from "constants/actionTypes"; } from "../constants/actionTypes";
const mapStateToProps = state => { const mapStateToProps = state => {
return { return {

View File

@@ -1,5 +1,5 @@
import { connect } from "react-redux"; import { connect } from "react-redux";
import { OPTION_CHANGE } from "constants/actionTypes"; import { OPTION_CHANGE } from "../constants/actionTypes";
const mapStateToProps = state => { const mapStateToProps = state => {
return { return {

View File

@@ -1,5 +1,5 @@
import { connect } from "react-redux"; import { connect } from "react-redux";
import { SUBCATEGORY_SELECT } from "constants/actionTypes"; import { SUBCATEGORY_SELECT } from "../constants/actionTypes";
const mapStateToProps = state => { const mapStateToProps = state => {
return { return {

View File

@@ -1,10 +1,10 @@
let express = require("express"); let express = require("express");
const path = require("path"); const path = require("path");
const bodyParser = require("body-parser"); const bodyParser = require("body-parser");
const MarketAlert = require("./MarketAlert"); const MarketAlert = require("./backend/MarketAlert");
const sendNotification = require("./utils/sendnotification"); const sendNotification = require("./backend/utils/sendnotification");
const scrapTheItems = require("./utils/scraptheitems"); const scrapTheItems = require("./backend/utils/scraptheitems");
const sequelize = require("./db.js"); const sequelize = require("./backend/db.js");
const Twocheckout = require("2checkout-node"); const Twocheckout = require("2checkout-node");
const app = express(); const app = express();
@@ -98,7 +98,7 @@ app.post("/payforalert", function(request, response) {
// Anything that doesn't match the above, send back index.html // Anything that doesn't match the above, send back index.html
app.get('*', (req, res) => { app.get('*', (req, res) => {
res.sendFile(path.join(__dirname + '/../frontend-react/build/index.html')) res.sendFile(path.join(__dirname + './frontend-react/build/index.html'))
}) })
app.listen(port, () => console.log(`Example app listening on port ${port}!`)); app.listen(port, () => console.log(`Example app listening on port ${port}!`));

View File

@@ -2,9 +2,11 @@
"name": "marketalarm", "name": "marketalarm",
"version": "1.0.0", "version": "1.0.0",
"description": "Market Alarm", "description": "Market Alarm",
"main": "./backend/index.js", "main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./index.js",
"heroku-postbuild": "cd frontend-react && npm install && npm run build"
}, },
"repository": { "repository": {
"type": "git", "type": "git",
@@ -16,10 +18,12 @@
"node": "11.10.x" "node": "11.10.x"
}, },
"dependencies": { "dependencies": {
}, "2checkout-node": "0.0.1",
"scripts": { "@sendgrid/mail": "^6.3.1",
"test": "echo \"Error: no test specified\" && exit 1", "cheerio": "^1.0.0-rc.2",
"start": "node ./backend/index.js", "express": "^4.16.4",
"heroku-postbuild": "cd frontend-react && npm install && npm run build && cd .. && cd backend && npm install" "mysql2": "^1.6.4",
"node-fetch": "^2.3.0",
"sequelize": "^4.42.0"
} }
} }