Skip to content

📋 Full-stack checklist app using MongoDB, Express, Vue and Node.js

License

Notifications You must be signed in to change notification settings

AndrewJBateman/mevn-stack-checklist

Repository files navigation

⚡ MEVN Stack Checklist

  • Full stack app using MongoDB, Express, Vue and Node.js to perform Create, Read, Update and Delete (CRUD) operations on a checklist of items.
  • Note: to open web links in a new window use: ctrl+click on link

GitHub repo size GitHub pull requests GitHub Repo stars GitHub last commit

📄 Table of contents

📚 General info

  • Axios used to send/receive data from MongoDB backend
  • Data displayed using on a View frontend using data-binding and a v-for loop.

📷 Screenshots

Example screenshot Example screenshot

📶 Technologies

Frontend:

Backend:

💾 Setup

/client Frontend:

  • npm run lint to lint files
  • npm run serve to run server. Navigate to http://localhost:8080/. The app will automatically reload if you change any of the source files. It was necessary to install webpack@4 (i.e. NOT webpack@5), uninstall sass-loader then run npm install --save-dev sass-loader@10.1.1 and npm i --legacy-peer-deps to fix errors/dependency issues. Lots of deprecation warnings during compile. Better to create a new Vue app than to update dependencies in this one.

/ Backend:

  • Create .env file and add MONGO_URI string and PORT number - as shown in .env.example
  • npm run start to run node.js server. Navigate to http://localhost:3000/ to see JSON object with todos or an empty array. CRUD operations can be performed on this backend using the Postman API dev tool.

/ Full stack:

  • npm run dev to run client and backend server concurrently. Navigate to http://localhost:8080/ to see frontend and http://localhost:3000/ to see backend.

💻 Code Examples

  • POST route
router.post("/", async (req, res) => {
  const newChecklistItem = new ChecklistItem(req.body);
  try {
    const checklistItem = await newChecklistItem.save();
    if (!checklistItem) throw new Error("Error saving checklist item");
    res.status(200).json(checklistItem);
  } catch (error) {
    res.status(500).json({ message: error.message });
  }
});

🆒 Features

  • Front and backends can be run with one command using concurrently set up in package.json

📋 Status & To-Do List

  • Status: Working. Updated june 2021.
  • To-Do: Front: change vue-card layout, make into component, add category dropdown and sort by category. Add vuex state management. Unused nav views - use or delete.

👏 Inspiration

📁 License

  • This project is licensed under the terms of the MIT license.

✉️ Contact

About

📋 Full-stack checklist app using MongoDB, Express, Vue and Node.js

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published