Skip to content

All-In-One Collaborative Platform

License

Notifications You must be signed in to change notification settings

mjbramich/kandoo

 
 

Repository files navigation

Logo

Kandoo Demo gif

A collaborative tool for the next project for individuals and engineering teams looking for more organization. This tool was borne from the desire for the #100Devs community (community of 50,000 and growing engineers) to utilize this as a way to organize as indiviudals and for teams to utilize without the distractions that you might find on Trello or Github.

GitHub Repo starsStatic BadgeStatic BadgeStatic BadgeStatic BadgeStatic Badge

Optimizations

At a system design level, we chose to leverage the nested model nature of MongoDB and the inherent synergy with React Node apps. With this in mind, we can definitely improve the app through refactors and optimizations through database queries. We can also introduce caching via Redis or Memcached. Caching frequently used data would be a good next step to improve performance across the app. By caching more frequently used data, we can avoid having to recalculate certain aspects within our app.

We can also introduce libraries to manage state better throughout the application such as Redux, Mobx, or Recoil. With a state management library, managing state would become more predictable, debuggable, and will bring efficient handling of more complex state changes.

Testing

Testing is something that we would have liked to add in the beginning. It would have made PR reviews a lot faster and would have standardized the code base even more so than just having ES lint to leverage.

Accessibility

With this project, we initially used Daisy UI for its free easy-to-use components, but after realizing the accessibility for users was sub-par (modals were completely inaccessible), we refactored our app to use out-of-the-box tailwind as it offered a better user experience.

Lessons Learned

Overall, this was a great learning process from team dynamics and team building, to learning the technical aspects of a single page application utilizing the MERN stack among other notable packages such as dndkit and passport.

Something that was especially important to increase efficiency and boosted our learning was pairing and mobbing. My pairing together to solve for an agreed-upon issue proved dividends as both parties are able to teach, give back, and ultimately learn together.

The new skills that we have picked up with this project are invaluable and will provide a good launching pad for projects both big and small for years to come.

Skills Learned / Improved upon

  • MERN Stack Technology
  • Git Branch Best Practices (Feature Branching)
  • GitHub Project Organization (Issues, PRs, Discussions)

Other Learnings

  • Agile Scrum
  • Communications Skills
  • Time Management
  • Conflict Resolution

Roadmap

Features

  • Chat Room Functionality
  • Integrations to Github and Discord

Technology Optimizations

  • State Management Library (Redux/Recoil)
  • Refactoring drag and drop
  • JWT Authentication
  • Websockets
  • React Router

Run Locally

Clone the project

  git clone kandoo

Go to the project directory

  cd kandoo

Install dependencies

  npm install

Install dependencies for client sub-directory

  cd client
  npm install

Install dependencies for server sub-directory

  cd server
  npm install

Start the server

  npm run start

Authors

License

MIT License

About

All-In-One Collaborative Platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 99.3%
  • Other 0.7%