Challenge Overview
Hey there Topcoderers! In this challenge, we are continuing to develop our Redis Manager App. For folks who didn’t get the chance to compete in the previous challenges, our client has asked for us to build a clone of Redis Commander and Medis, only in Angular6 so they can add some custom components as needed. The intent is to open source this project once it is complete and winners will be added to the contrib.md
If you are new to Redis it is an in-memory data store that is most commonly used to support web apps that need fast and frequent access to key-value pairs. This technique commonly known as data caching leverages Redis, however, to manage Redis users must become familiar with the Redis command line interface (CLI). Since the end users do not use Redis enough to become proficient with the CLI, we’ve been asked to make a management app for them.
Keep in mind our user’s core needs:
- End users should be able to manage a Redis server through a straight-forward user interface.
- This will be a general-purpose Redis management app.
Final Submission Guidelines
We have run previous challenges that have laid the foundation for a great Angular6 Redis Manager. In this challenge, we are working on a couple different features that will improve the user experience and get it ready for launch.
Major Requirements
- Add a unregister/delete server function
- The Information icon
- Include definitions of the included commands (see the README on teh Github Repo)
- How to create a server
- How to connect to an existing server
- How to disconnect from a server
- Include a link to official Redis.io documentation
- Refactor the backend to exemplify the Hapi.js plugin architecture
- Add the following two endpoints to the backend
- GET /healthcheck - it should return the last git commit sha, author and commit date of the codebase
- POST /refreshConfig - the JSON request payload will contain external config file link like: http://hostname/config.json, the app should apply it to the local config file (save to file system), and use the updated config in app.
- Create a Dockerfile for deployment
- The app should be built and copied into the docker image. When the docker image spins up into a container it should query for it’s configuration files (client as requested an external S3 bucket) and startup the hapi.js server.
- Part of the build process that generates the docker image should include a json file that lists the final commit data for that build, including the build date for the image.
Code Access
Please clone the repo here. The winner will be requested to make a pull request at the close of the challenge. https://github.com/topcoderinc/TC-redis-manager
Technology Stack
Frontend
- Angular 6
- Angular Material https://material.angular.io/
- Material Icons https://material.io/tools/icons/?style=baseline
- ioredis https://github.com/luin/ioredis
- Hapi.js
- NodeJS
Submission
- Please submit your source files in a zip.
- Please update the README.md file to include how to deploy the app to Docker, and any relevant configuation information.