Challenge Overview
Challenge Overview
This is first challenge in a series of challenges to cleanup CSFV backend services and controllers and refactor them in a single node module.
Challenge Requirements
We have the following standalone applications :
-
csfv_frontend_module : this is verigames.com website and renders notification widget in the website
-
csfv_oauth_module : this is an OAuth server
-
csfv_gaming_api_module : this is a REST API
-
csfv_chat_module : this represents a chat messaging application. We mainly use it in user profile under messages tab.
-
csfv_cms_module : this is a CMS application.
-
csfv_test_data_generator : this is to generate test data for the applications.
The modules you are merging in this challenge :
Here is what you will do in this challenge :
-
Merge the 5 modules mentioned above in a single csfv_backend_module.
-
Combine all code under single folder.
-
Follow folder structure for the new module as outlined below.
-
For conflict file names, specifically helpers, you can rename it to have a prefix, i.e. helper from core module can be CoreHelper. Or you can merge all functions in single file and remove duplicate function names or merge function or rename functions.
-
Don’t include any services, functions, controllers from original module that are not used by any standalone application.
-
Delete all memcache code and dependencies from merged modules.
-
Update package.json to consolidate versions and remove unused libraries.
-
Fix lint for the source code merged here.
-
Remove unit tests. Don’t include it in the new code.
-
-
For each standalone application :
-
update the configurations to reference the new module.
-
Remove all code, routes, views, and static files of csfv_wiki_module and csfv_wiki_processor_module.
-
-
Write a readme file for the new module that contains the following :
-
Overview
-
Configuration sample and Table of configurations (A table is a must)
-
How to run lint.
-
Testing
For each module you need to make sure to test the functionality affected by the changes in backend module.
Folder Structure
Folder structure of backen should look like this :
-
models
-
<model-name>.js
-
-
controllers
-
<controller-name>.js
-
-
services
-
<service-name>.js
-
-
.gitignore
-
config/
-
READ.md
- anything else needed.
Github Code
CSFV websites code exists in private github repository http://github.com/topcoderinc
Here is the repositories (you can search for them in the github.com link provided above). Also you can view all list of repositories here https://github.com/orgs/topcoderinc/teams/csfv-members/repositories
Final Submission Guidelines
Deliverable
-
New csfv module name csfv_backend_module with all source code and files that address above requirements.
-
Patch file for each standalone application listed in requirements.
- Deployment guide with verification steps.