Giter Club home page Giter Club logo

react-bug-tracker's Introduction

React Bug Tracker Full Stack App with Redux Toolkit and Firestore

This react project is part of a series of individual apps built to showcase some of my personal Front End Development Skills.

The app Records bugs occurring in software development and tracks the issues. Fully secured with authentication method and a Role Management System. Professional UI / easy access to data / realtime data syncing Firestore.

Other projects can be found within the following Portolio website as well as on this GitHub Repositories.

Project Overview & Features

A Bug Tracker App created with reactJS, recording bugs and tracking the issues.

The app contains the following features:

  • Fully secured navigation with authentication method for any roles: Admin/Manager/Developer/Submitter
  • Depending on your current role, an access to extra functionalities and informations on the app
  • A Register/Login option for the user to create a personalised account (Firebase and Context API)
  • A Login option for Demo User allowing a quick demonstration using one of the 4 Roles
  • A synchronised data flow on all project/ticket
  • Create a new Project and Assign or Remove a Project Manager from it
  • Edit the Project details and add/remove members from it
  • Archive, Retrieve and Delete a Project
  • Create a new Ticket, edit the Ticket and Assign a developer to it
  • Archive, Retrieve and Delete a Ticket
  • Add a comment to a ticket and check its history
  • Receive Live Notifications when assigned a Project and a Ticket
  • Check out Profiles and Informations of all Members
  • Assign a new Role to a member and change its security clearance (Admin only)
  • Live Search in all Tables for the informations
  • Change the Theme of the App Light/Dark options

Scenario: Authorizations and User Roles

Tech/framework used

Built with

Code Feature

User Role Navigation => Redirect the User for unauthorized routes depending on its role

const RequireAuth = ({ allowedRoles }) => {
  const { auth } = useAuth();
  const location = useLocation();

  return auth?.roles?.find((role) => allowedRoles?.includes(role)) ? (
    <Outlet />
  ) : auth?.user ? (
    <Navigate to="/Unauthorized" state={{ from: location }} replace />
  ) : (
    <Navigate to="/Login" state={{ from: location }} replace />
  );
};

export default RequireAuth;

Protected Routes for different users roles => Admin, Project Manager, Developer and Submitter

{
  /* ----- PROTECTED ROUTES -  LOGGED IN USERS ONLY ----- */
}
<Route element={<RequireAuth allowedRoles={[ROLES.User]} />}>
  {/* All logged in Users can access these routes */}
  <Route path="/" element={<HomeDashboard />} />

  <Route element={<RequireAuth allowedRoles={[ROLES.Admin, ROLES.Manager]} />}>
    {/* Only ADMIN and PROJECT MANAGER can access these routes */}
    <Route path="/Projects/EditProject/:id" element={<EditProject />} />
  </Route>
</Route>;

Installation

Use the package manager npm to install the app once project is downloaded.

For dependencies

npm install

Launch the App

npm start

How to use?

For an easy start, click on the following link to access the live website: https://bugtracker-ig.netlify.app/

  • Start by Login on Demo User and see the different access/authorizations given to you depending on your role.
  • Create a new ticket, a new project.
  • Edit, Archive, Retrieve and Delete Tickets and Projects.
  • Add a comment to a ticket and check its history.
  • Assign and edit Roles to users.
  • Assign a project to a Manager and a ticket to a Developer.
  • Check the inbox for a new project or ticket recently assigned.
  • Check out any user profile and their current projects.
  • Search for your own Project/Ticket.

Contribute

Any contributions is welcome! Please suggest any new feature, suggestion or improvement and they will be implemented. Thank you for the support.

Credits

I would like to thank:

  • Coder Foundry for the project inspiration
  • Bootstrap for the UI design ideas

Created by

() => © Ionathan

react-bug-tracker's People

Contributors

ionathang avatar

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.