As a software developer, your task is to build a full-stack web application that includes user authentication. Choose a technology stack that includes a front-end framework like React, a back-end framework like Node.js, and a database such as MongoDB. Implement secure user authentication using JWT or OAuth 2.0. The application should allow users to register, log in, and perform CRUD operations. Provide detailed documentation of the codebase and deployment instructions.