Initial commit
This commit is contained in:
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
/node_modules
|
||||||
|
.DS_Store
|
||||||
24
README.md
Normal file
24
README.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# MERN Stack Template
|
||||||
|
|
||||||
|
- **M** = [MongoDB](https://www.mongodb.com)
|
||||||
|
- **E** = [Express.js](https://expressjs.com)
|
||||||
|
- **R** = [React.js](https://reactjs.org)
|
||||||
|
- **N** = [Node.js](https://nodejs.org)
|
||||||
|
|
||||||
|
## Initialize project:
|
||||||
|
|
||||||
|
###### Server (Backend):
|
||||||
|
|
||||||
|
1. Prepare your MongoDB database
|
||||||
|
2. Terminal: `cd server`
|
||||||
|
3. Terminal: `npm install`
|
||||||
|
4. Set your database within `index.js`
|
||||||
|
5. Terminal: `npm start`
|
||||||
|
6. Start writing code...
|
||||||
|
|
||||||
|
###### Client (Frontend):
|
||||||
|
|
||||||
|
1. Terminal: `cd client`
|
||||||
|
2. Terminal: `npm install`
|
||||||
|
3. Terminal: `npm start`
|
||||||
|
4. Start writing code...
|
||||||
3
client/.gitignore
vendored
Normal file
3
client/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/node_modules
|
||||||
|
.DS_Store
|
||||||
|
.eslintcache
|
||||||
28
client/package.json
Normal file
28
client/package.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"name": "client",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"start": "react-scripts start"
|
||||||
|
},
|
||||||
|
"author": "Ben Elferink",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"axios": "^0.21.0",
|
||||||
|
"react": "^17.0.1",
|
||||||
|
"react-dom": "^17.0.1",
|
||||||
|
"react-scripts": "^4.0.1"
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.2%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 1 chrome version",
|
||||||
|
"last 1 firefox version",
|
||||||
|
"last 1 safari version"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
12
client/public/index.html
Normal file
12
client/public/index.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>MERN_STACK</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||||
|
<div id="root" />
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
7
client/src/App.js
Normal file
7
client/src/App.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
function App() {
|
||||||
|
return <div>Hello World - React.js</div>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export default App;
|
||||||
6
client/src/api/index.js
Normal file
6
client/src/api/index.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
import axios from 'axios';
|
||||||
|
|
||||||
|
const url = 'http://localhost:8080/';
|
||||||
|
|
||||||
|
// export const getSomething = () => axios.get(url + 'path');
|
||||||
|
// export const postSometing = (form) => axios.post(url + 'path', form);
|
||||||
10
client/src/index.js
Normal file
10
client/src/index.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import ReactDOM from 'react-dom';
|
||||||
|
import App from './App';
|
||||||
|
|
||||||
|
ReactDOM.render(
|
||||||
|
<React.StrictMode>
|
||||||
|
<App />
|
||||||
|
</React.StrictMode>,
|
||||||
|
document.getElementById('root')
|
||||||
|
);
|
||||||
9
client/src/style/style.css
Normal file
9
client/src/style/style.css
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
* {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
1
server/.env.example
Normal file
1
server/.env.example
Normal file
@@ -0,0 +1 @@
|
|||||||
|
CONNECTIONS_URL = "URL"
|
||||||
3
server/.gitignore
vendored
Normal file
3
server/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/node_modules
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
30
server/index.js
Normal file
30
server/index.js
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import mongoose from 'mongoose';
|
||||||
|
import express from 'express';
|
||||||
|
import dotenv from 'dotenv';
|
||||||
|
import cors from 'cors';
|
||||||
|
|
||||||
|
// initialize app
|
||||||
|
const app = express();
|
||||||
|
dotenv.config();
|
||||||
|
|
||||||
|
// connect to db ---> if you want to connect to cloud server: edit "CONNECTION_URL" in -> .env file
|
||||||
|
const DB_NAME = 'testDB'; // if you want to use local server: edit this "DB_NAME" (and remove the "CONNECTION_URL" from -> .env file)
|
||||||
|
const CONNECTION_URL = process.env.CONNECTION_URL || `mongodb://localhost:27017/${DB_NAME}`;
|
||||||
|
const PORT = process.env.PORT || 8080; // 8080 === development port
|
||||||
|
const DEPRECATED_FIX = { useNewUrlParser: true, useUnifiedTopology: true }; // change this with (possible) warnings on first connection
|
||||||
|
|
||||||
|
mongoose
|
||||||
|
.connect(CONNECTION_URL, DEPRECATED_FIX)
|
||||||
|
.then(() => console.log('✅ MongoDB connected'))
|
||||||
|
.then(() => app.listen(PORT, () => console.log(`✅ Listening on port: ${PORT}`)))
|
||||||
|
.catch((error) => console.log(`❌ ${error}`));
|
||||||
|
|
||||||
|
mongoose.connection.on('error', (err) => console.log(`❌ MongoDB: ${err}`));
|
||||||
|
|
||||||
|
// middlewares
|
||||||
|
app.use(express.json()); // body parser
|
||||||
|
app.use(cors()); // enables requests
|
||||||
|
|
||||||
|
// routes
|
||||||
|
app.get('/', (req, res) => res.send('Hello World - Express.js'));
|
||||||
|
// app.use('/', IMPORTED_ROUTES);
|
||||||
18
server/package.json
Normal file
18
server/package.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
"name": "server",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"main": "index.js",
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"start": "nodemon index.js"
|
||||||
|
},
|
||||||
|
"author": "Ben Elferink",
|
||||||
|
"license": "ISC",
|
||||||
|
"dependencies": {
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"mongoose": "^5.11.8",
|
||||||
|
"nodemon": "^2.0.6"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user