GithubHelp home page GithubHelp logo

arpadgbondor / brad_traversy-react_front_to_back_2022-05-support_desk Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 412 KB

Home Page: https://gabriel-support-ticket.herokuapp.com/

License: MIT License

JavaScript 89.11% HTML 1.07% CSS 9.83%

brad_traversy-react_front_to_back_2022-05-support_desk's Introduction

Brad Traversy - React Front To Back 2022 - 05 - Support Desk

  • Section 17: MERN Project Start, API & Backend Authentication
  • Section 18: Frontend Authentication
  • Section 19: Tickets Functionality
  • Section 20: Notes Functionality & Deploy

Description

The project is a full stack application, that allows users to register, login, create helpdesk tickets, close tickets, and communicate with customer service by making notes under the tickets. The customer service side login, and handling tickets is not included in the project.

I'm looking for contributors to develop the customer service side of the project

I opened an issue for discussion, if anyone would be interested in doing some team work, practising to do pull requests, contributing to someone else's repository, reviewing code in pull requests, etc... You can find the issue here.

Yes, I could do it myself, but I already have 150+ repositories I've built myself, and very little experience in working with others, so I tought I'd give it a try.

Deployed

Used Tools:

  • Frontend:
    • React.js
    • Redux toolkit
  • Backend:
    • Express.js server
    • Authentication
    • MongoDB - Mongoose

Mayor changes:

Environment variables:

  • Create a file named .env and set these variables:
    • NODE_ENV - development
    • PORT - server's port number
    • MONGO_DB_CONNECT - Moingo DB connection string
    • JWT_SECRET - JSON Web Token Secret string

Resources:

brad_traversy-react_front_to_back_2022-05-support_desk's People

Contributors

arpadgbondor avatar bushblade avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

bushblade

brad_traversy-react_front_to_back_2022-05-support_desk's Issues

The customer service side login and handling tickets is not included in the project.

I opened an issue for discussion, if anyone would be interested in doing some team work, practising to do pull requests, contributing to someone else's repository, reviewing code in pull requests, etc...

Yes, I could do it myself, but I already have 150+ repositories I've built myself, and very little experience in working with others, so I tought I'd give it a try.

Add bugfixes from the bugfix branch of the instructor's repository

Hi guys, yeah this is a good idea. I'm happy to add what I can.
You may be interested in checking out the bugfix branch of Brad's repository where I've been tracking and fixing many of the bugs found by students in the course, some from you @ArpadGBondor !
It's also been streamlined and simplified a good deal in terms of state management as there is no real need for a isLoading, isSuccess or reset state functions in tickets and notes. In most cases we can infer loading from presence or absence of data and leverage pending, fulfilled and rejected states provided by our AsyncThunkAction to reset state.
Also the useAuthStatus hook was removed as it was only really a wrapper for Redux state and only used in one place - PrivateRoute.jsx.
PrivateRoute also got refactored to no longer use an <Outlet /> as we were not really doing any nested routing so a <Outlet /> was not necessary.
I haven't documented all the changes as yet but there are notes in the code where it has been changed and why.
I think the code from the bugfix branch would be a more stable and predictable base to start from for adding in additional features.
I'd be happy to submit a PR with the bug fixes if you like?

Originally posted by @bushblade in #1 (comment)

Feature needed: Email verification after registration

To prevent anyone signing up for a staff account I would also suggest adding in email verification so that the app sends an email (nodemailer or mailgun) to the email address with a link to click and confirm email.
This would also mean you need to add in some properties to the User model like a pending and active state for each member. This would start as pending and then once they have verified the email they are changed to active and can sign in.
For the link you can generate some kind of uuid or JWT and save that in their model/document in the DB, then they click the link in the email which takes them to the app at some end point like /confirm/:comfirm_token so using req.params in express to get the confirm_token. Then query the user by the confirm token, change their pending status to active and send back a jwt or a message for them to login.

Originally posted by @bushblade in #1 (comment)

Feature needed: Register as a staff member

Add a new environment variable to store the staff e-mails domain name.
If during registration the email address has the same domain name, register it as a staff member. (or ask if the user wants to register customer or staff member.)

UserModel already have an isAdmin property to show if the user is staff member.

Originally posted by @bushblade in #1 (comment)

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.