Coder Social home page Coder Social logo

jeanrauwers / mern-course-bootcamp Goto Github PK

View Code? Open in Web Editor NEW
1.1K 81.0 176.0 1.97 MB

Complete Free Coding Bootcamp with the MERN Stack

License: MIT License

JavaScript 88.39% HTML 4.46% CSS 7.15%
coding-bootcamp mern-stack freecodecamp coding learning-js youtube-tutorial-series mern series frontend react

mern-course-bootcamp's Introduction

Complete Free Coding Bootcamp with the MERN Stack (beginner friendly)

This is a series video and we are going to build a full-stack application from scratch using the MERN STACK (MongoDB, Express, React.js and Nodejs).

We will build a Sports Web App that allows you creating sports events and the app will include:

  • User registration and authentication (maybe add facebook/gmail login if the series becomes popular)
  • Hashing password for security
  • Session control
  • CRUD operations (create, read, update and delete)
  • Search for events using filters (Running, Cycling or Swimming)
  • Sign UP for event in order to participate
  • Upload images to the server
  • Website notification using web sockets (in order to approve or refuse the Event Sign UP request)

Need help?

We have a discord group

Videos on youtube

  • Project Demo - Demo the project we will building during the series
  • Episode 0 - Setup env, mongoDB and User model and Controller
  • Episode 1 - Add routes setup and more end points
  • Episode 2 - Add events route and controller
  • Episode 3 - Add Approval and Reject controller and routes
  • Episode 4 - Add React on the frontend and Login and Register pages
  • Episode 5 - Add EventsPage and create events from the frontend
  • Episode 6 - Add Styles for EventsPage, Login, Register and fix some small bugs
  • Episode 7 - Add Dashboard page and base styles
  • Episode 8 - Finish Dashboard and Add delete functionality
  • Episode 9 - Add JWT tokens and protecting the routes
  • Episode 10 - A - Add Logout and sockets.io to web-app *(Fix introduced please see it bellow)
  • Episode 10 - B - Fix register user and add notification for registering to events
  • Episode 11 - A - Add topNav, userContext (React ContextApi) and DropDown menu
  • Episode 11 - B - Add Accept and Reject actions and protect the routes
  • Episode 12 - Add My Registrations Page and talk about the future of this project
  • Episode 13 - A - Change backend (API) to save image on S3 Bucket (AWS)
  • Episode 13 - B - Deploying the API and Frontend to Heroku

Fix required for episode 10

It is natural that after some time and a few updates, something breaks because many people forget to install the same dependencies versions that I have used when recorded the Bootcamp. So I have decided to update socket.io and socket.io-client to the latest version (3.1.1).

That will fix the cors issue that many of you face and prevent the Bootcamp from being outdated.

please check the code for the server and the client.

on the server-side please update the server.js to the following code.

const server = http.Server(app)
const io = require("socket.io")(server, {
	cors: {
		origin: "*",
		methods: ["GET", "POST", "DELETE"]
	}
});

on the client side please update the Dashboard page with the following code.

    const socket = useMemo(
        () =>
            socketio.connect('http://localhost:8000/', { query: { user: user_id } }),
        [user_id]
    );

Deploying your webapp

For deploying this project we will modificate our backend and start using the S3 data storage from AWS. Heroku does not keep your files into the server and because of that we are moving away from saving the images in disk to saving the images into the S3 that will host the images for us. You will need to create an AWS account and a new bucket that will be explained into the Episode 13-A. Following the next episode 13-B we are spliting the Backend and Frontend into two separeted projects to take the advantage of Heroku's CI/CD that basically deploys your code automatically when it detects a new code into your github repository.

React Native Bootcamp 2021

The React Native Bootcamp is out we will build a client for the Web-App we built here, please find more about it here

Fancy support my work so I can do more of it?

Donate

Want to know more about my motivation for this project?

Read my blog post

mern-course-bootcamp's People

Contributors

ar889 avatar asi309 avatar dependabot[bot] avatar jeanrauwers avatar shubhayans avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mern-course-bootcamp's Issues

get all events returns empty array

I've been following the tutorial for quite a while now, and I encountered an issue where if I create a new event, it gets registered and I do get back a response, but if I hit the request at dashboard I get an empty array, I'm supposed to get back the event I registered for but I just get back [] in response. I tried debugging the getAllEvents method and found out that the result of await Event.find(query) returns an empty array, but it's not supposed to because I just created a new event, which I can still see if I hit the getEventById request.

Here's the repo.

๐Ÿšจ Potential Use of Hard-coded Credentials

๐Ÿ‘‹ Hello, @jeanrauwers - a potential critical severity Use of Hard-coded Credentials vulnerability in your repository has been disclosed to us.

Next Steps

1๏ธโƒฃ Visit https://huntr.dev/bounties/1-other-jeanrauwers/mern-course-bootcamp for more advisory information.

2๏ธโƒฃ Sign-up to validate or speak to the researcher for more assistance.

3๏ธโƒฃ Propose a patch or outsource it to our community - whoever fixes it gets paid.


Confused or need more help?

  • Join us on our Discord and a member of our team will be happy to help! ๐Ÿค—

  • Speak to a member of our team: @JamieSlome


This issue was automatically generated by huntr.dev - a bug bounty board for securing open source code.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.