This is an educational project. The main idea is to demonstrate how one can build a scalable social network using Node.js, React, and Sql with Javascript.
This is a full stack project, the backend end uses Node.js with Express, and a MySql database. The frontend is React, with redux utilized for state management. We also utalize Firebase Cloud Storage to hold images, files, and user avatars.
Home Page: See the designs, and download files from your friends, and those that you follow on the network!
Discover Page: Gives you the opportunity to find new people, and discover popular posts on the network.
Discover People: Discover other 3D print designers, follow them, and use their designs!
Top Posts: Discover the top designs across the network!
- Clone the project
- Cd into server and npm install
- Cd into client folder and npm install
- Cd back into server
Now that the project is installed with dependencies, Download your preferred solution stack for hosting Sql Servers (MAMP, WAMP, XAMPP).
- Start your solution stack, and navigate to localhost/phpmyadmin and log in
- Create a table with the included DB_Creator SQL file.
- Create .ENV file in the project’s root directory
Server Env file should contain:
- DATABASE = (name of database in phpmyadmin)
- DATABASE_HOST = (should be localhost if running on local machine)
- DATABASE_USER = (username for sql server)
- DATABASE_PASSWORD = (password for sql server)
Client Env contains Firebase Connection Keys that can be found in your Firebase Project Settings: - do not change ENV names React requires env names to start with REACT_APP_ -
- REACT_APP_API_KEY = (Firebase API Key)
- REACT_APP_AUTH_DOMAIN = (Firebase Auth domain)
- REACT_APP_DATABASE_URL = (Firebase databse url)
- REACT_APP_PROJECT_ID = (Firebase project ID)
- REACT_APP_STORAGE_BUCKET = (Firebase Storage Bucket ID)
- REACT_APP_MESSAGING_SENDER_ID = (Firebase messaging sender ID)
- REACT_APP_APP_ID = (Firebase App ID)
- REACT_APP_MEASUREMENT_ID =(Firebase measurment ID)
- inside of /server run command npm run dev
- frontend will start on localhost:3000 and Backend will start on localhost:5000