A full-stack business analytics application that visualizes sales and business data for a fictional pizza company.
The app connects a React frontend with a Node.js/Express backend and uses an Oracle database to provide KPIs and interactive dashboards.
- Login / Authentication (Admin)
- KPI Dashboard: Revenue, sales figures, product performance, customer data
- Interactive visualizations with Recharts
- Data management for stores, products, orders, customers
- Filter functions for detailed analysis
- Responsive UI for desktop and tablet
| Layer | Technology |
|---|---|
| Frontend | React, Recharts, CSS |
| Backend | Node.js, |
| Database | Oracle Database |
| Tools | Power BI, Git, npm |
The system is based on a classic 3-tier architecture:
- Frontend – React app with Recharts for visualization
- Backend – Node.js REST API as interface to the DB
- Database – Oracle XE with relational schema
- Orders – Orders with date, quantity, product, store, customer
- Products – Product data (name, category, price)
- Stores – Store locations
- Customers – Customer data
- Ingredients – Ingredients
- Node.js ≥ 14
- npm ≥ 6
- Oracle Database XE 21c (or compatible)
- Modern browser (Chrome, Edge, Firefox)
Clone or download the project files into a main directory. This should include:
pizza_schema.dmp(database dump file)holy-pepperoni/(React frontend)backend/(Node.js backend)
git clone [<your_repository_url>](https://github.com/ioanaxcarmen/Pizza-Web-App)
cd <your_project_folder>- Create a folder at
C:\oracle_import. - Place your
pizza_schema.dmpfile inside it.
Open Command Prompt or PowerShell as Administrator, then connect using SQL*Plus:
sqlplus system/YourAdminPassword@localhost:1521/XEPDB1Execute the following SQL statements:
CREATE USER PIZZA IDENTIFIED BY MyPizza123;
GRANT CONNECT, RESOURCE, CREATE_MATERIALIZED_VIEW TO PIZZA;
ALTER USER PIZZA QUOTA UNLIMITED ON USERS;
CREATE OR REPLACE DIRECTORY DMP_DIR AS 'C:\oracle_import';
GRANT READ, WRITE ON DIRECTORY DMP_DIR TO PIZZA;
EXIT;In the same Admin terminal:
impdp PIZZA/MyPizza123@localhost:1521/XEPDB1 DUMPFILE=pizza_schema.dmp DIRECTORY=DMP_DIR LOGFILE=import.logWait for it to finish. If there are no critical errors, your database is ready.
- Go to the
backend/directory. - Open
server.js. - Make sure the
dbConfiguses the correctconnectString:
const dbConfig = {
user: "PIZZA",
password: "MyPizza123",
connectString: "localhost:1521/XEPDB1", // Use the PDB for app data
// connectString: "localhost:1521/XE" // Commented out - root container
};- Go to the
holy-pepperoni/directory.
REACT_APP_API_URL=http://localhost:3001 --> replace localhost with current IP address to make it accessible from other devicesYou’ll need two terminal windows open.
cd path/to/your/project/backend
npm install
node server.js✅ You should see:
Backend server running at http://localhost:3001
cd path/to/your/project/holy-pepperoni
npm install
npm start -- --host 0.0.0.0✅ A browser window should open automatically.
Use these Firebase credentials:
- Email:
admin@pizza.com - Password:
pizza1
After logging in, use the menu to go to:
- Products
- Stores
- Customers
- Ingredients
- Orders
- Geographical Reports
On KPI pages:
- Use filters to slice data.
- Click chart elements to drill down into details.






