This is my first self made bigger project that I was working on recently. It is CRM, CRUD app built on: front-end: react, back-end: node.js, express, mysql.
Main purpose of this project is to manage business based on orders that don't need online shop.
For example selling items on livestreams.
Page content is restricted to logged in users only
Authentication is based on passport middleware
Accounts are stored in mysql database and passwords are hashed via bcrypt library
In homepage there are summaries of orders, clients, upcoming events etc.
There is interactive graph which shows total earnings by past 12 months based on actual date
Orders are fetched from database and displayed in filtered array
Users can add new orders
New orders can be assigned to existing clients or new client can be added
Each order have it's individual page
Works similar as order pages
Clients can be added by users
Each client have his own individual page, with content like: total orders, total spendings etc.
Users can add upcoming events
Events are separeted to 2 pieces
First piece are current and upcoming events
Second piece are expired events
Events are filtered by date: closest events are at top
If logged user is admin, he have access to admin panel
For that moment he can add new users, aswell as deleting them
I've styled the whole app with pure CSS by myself
The app was designed to be non-scrollable.
I've decided to not use next.js to improve my node.js skills and learn more about front-end --- back-end synergy
- Clone the repo
git clone https://github.com/Zlvsky/One-place.git
- Install NPM packages in root folder and /client folder
npm install
- Create and configure your .env file in root folder
DB_HOST='127.0.0.1' DB_USER='' DB_PASSWORD='' DATABASE=''
- Import sql database template to server (one-place.sql)
- Add first admin account
- Run app with concurrently library (node.js and react app at the same time)
npm run dev | npm run build