Challenge Overview
Challenge objectives
-
Refactor notifications related features from Connect application into a separate library
Project Background
Topcoder Connect is client facing application of Topcoder. Customer use Topcoder connect to input requirements of their projects, then managers and copilots take it from there. You can see Topcoder Connect in action here: https://connect.topcoder-dev.com
One part of the app is related to notifications and we want to move it to a separate library (this challenge) which we will reuse in our community application (future challenge).
Technology Stack
-
ReactJS
-
Redux
-
SCSS
Code Access
Base code can be accessed at
-
https://github.com/appirio-tech/connect-app/ - dev branch
Individual requirements
-
Create notifications-js library
-Create a new js library and move all the notifications related features from connect-app there. This includes:
-
Code from src/routes/notifications
-
Code from src/routes/settings/notifications
-
All used assets (images, styles, etc)
-
NotificationsReader and related components from src/components
Code in the notifications library should not know anything about connect app, connect projects, etc, so all connect-app related code should be made configurable (this includes rules configuration, settings configuration, notification types). Our main goal is to make the library as generic as possible so we can include it in other apps in the future (starting with the community app)
-
Create a demo app
- Create a demo app to showcase notifications library integration with these features:
-
Notifications bell icon and dropdown
-
Notifications list page
-
Notifications settings page
Submission Guidelines
-
Full source code for the library and demo app
-
Readme/Verification guides
-
Winner will be required to create a pull request
Future work
Here is a list of tasks we will handle in future challenges
-
Community app integration
-
Community app changes (hide settings, events configuration, etc) and connect app integration
-
Theming support - connect app uses appirio-tech/react-components/commits/feature/connectv2 while connect app uses ui-kit components - there will be some work to update notifications library with theming support
Final Submission Guidelines
Submission Guidelines
-
Full source code for the library and demo app
-
Readme/Verification guides
-
Winner will be required to create a pull request