Enterprise application built for Integral Solutions office furniture moving Company.
This app is deployed using Heroku. From a development perspective, this app uses Node.js, Mongo, React and Apollo/GraphQL. See the technology list below for more detail.
The following features exist:
- Full admin and employee panels to track clients, jobs and employee data.
- Contact form functionality using sendgrid for direct client inquiries
- Employee navigation tools to route daily employee travel
React:
JavaScript transcompiler mainly used to convert ECMAScript 2015+ code into a backwards-compatible version of JavaScript.Git/Github:
Repo and version management.Mongo/Mongoose
: Database.React-Bootstrap
: For most of the CSS styling.Apollo/GraphQL
: For GraphQL database query.jsonwebtoken/jwt decode
: For user authentication and token decoding.Heroku
: Deployment.FullCalendar
npm package.- NPM Packages:
FontAwesome
,moment
,phone-number-formater
,react-bootstrap-icons
. API
: Google maps - a)places
, b)directions
and c)reverse geocode
& d)TinyURL
.PWA
: Is intallable as an app via PWA, and works offline.
Setup:
- (1) Fork the repo, (2) Clone the forked repo locally, (3) Run "npm install" (to install the dependencies).
Setup the Database Schema:
-
(1) Update or add an .env file. Include the fields below in the .env file. Note that the .env variables are used in the conf folder, connection.js file.
Server-Side '.env`:
- DB_NAME=integral-solutions
Client-Side
.env
:- REACT_APP_GOOGLE_MAPS_API_KEY=
- REACT_APP_TINY_URL_KEY=
Seed the Database:
- Run Server: From the root directory, run either "npm run watch" to start nodemon or "node server.js".
- Seed Database: (a) To create the database, run "SOURCE ./db/schema.sql" in mySQL, (b) To create the database tables, from the terminal, run "npm run start" or "npm run watch", (c) To seed the database tables, run "npm run seed" or "node ./seeds/index.js".
Note that the seed will also create entries for the user table including hashed passwords. When loggin into the app these user seeds can be used as test email address. Either obtain an email address from the user table (SELECT * FROM user;) or use an option noted below:
- email: [email protected], password: "12345" (note role is employee)
- email: [email protected], password: "12345" (note role is manager)
If you'd like to use NPM nodemon as/if you make changes to the code, please install nodemon as a development dependency using "npm install --save-dev nodemon" (see https://www.npmjs.com/package//nodemon).
Contributor Covenant Code of Conduct
- GitHub Repo: https://github.com/stevecalla/integral-solutions-dev
- Heroku Deploy: <https://int-solutions-dev.herokuapp.com/ >
This project is licensed under the terms of the The MIT License. Please click on the license badge for more information.