A Personal-Blog so that I follow the trend of those dev/s writing their opinion on a place nobody even care of.
LINK: https://krehwell.com
P-Blog
|- frontend
|- website/
|- rest-api/
|- admin
|- website/
|- rest-api/frontend/is the blog.admin/is the CMS.
every rest-api/ on front-end and admin has an environment variable (.env file) that consist of string for MongoDB config:
DB_USERNAME=usernameofmongodb
DB_PASSWORD=passwordofmongodb
Make sure to update MongoDB string URI as well in each rest-api/index.js on front-end and admin:
/// DB CONNECTION
const mongoString = `mongodb+srv://${process.env.DB_USERNAME}:${process.env.DB_PASSWORD}@coding-blog.rv1qo.mongodb.net/blog?retryWrites=true&w=majority`; // alter following your DB URI|- frontend
|- website/
|- rest-api/pages/: Routes to all pages.
api/: Directory which defined all function to fetch from server e.g: getAllBlogPost.js. Later on each page which need to access db can just call this function and organized the data gotten in its particular Component. (all function inside api/ is solely for retrieving data from db)
Utils/: Consist a helper for easing the definition of variable. e.g: apiBaseUrl.js is for defining the name of url for the server site either its locally from localhost or from the website url when on production.
index.js: This is a setup where dependecy and config goes (connect db, cors config, etc).
routes/: Directory consists files to access endpoint. (index.js and api.js)
inside routes/index.js consists the definition on the route name e.g:
const api = require("./api.js");
app.get("/posts/get-all-blog-posts", (req, res) => {
api.getAllBlogPosts((apiResponse) => {
res.json(apiResponse);
});
});and routes/api.js is where the prosessing for the backend goes like fetching db etc.
module.exports = {
getAllBlogPosts: (callback) => {
// fetch db...
callback(posts);
},
};This is CMS for making a new, modify, or delete a blog post.
|- admin
|- website/
|- rest-api/np: all pages on admin site use serverside rendering.
The workflow the same as frontend...
The workflow the same as frontend...


