Challenge Overview
Project Overview
This project, the CSFV Community Gaming website project will provide the web site infrastructure and integration of the games. This will be a web site that is available on the Internet, and also will be delivered in a form where the server and the games can be installed and used behind a firewall.
The goal of this challenge is to cleanup chat application backend, and fix the unit tests.
Competition Task Overview
You will Cleanup backend csfv_chat_module as follow :
- Remove all unused code.
- Unify error handling, validation and logging, it should be moved to csfv_utilities_module and use the same approach used in thiat module.
- Make Socket.IO logging level controlled by configuration.
- Remove the following classes and replace it with direct access to database by using mongoose object modeling features :
- chat.persistence.dao.mongo.js
- chat.persistence.dao.js
- chat.persistence.dto.js
- chat.persistence.Entities.js
- Currently we are handling 'performAction' command into single long method in chat.vervice.web.js#startChatSocketService, move each actionName logic into separate method and simlify the method.
- Enable admin feature and authorization in backend server, it was disabled by mistake and we need to put it back. Any user who has 'admin' role should see the admin functionality.
- Rename all source code files by excluding the namespace from the file name, chat.service.impl.js becomes chatServiceImpl.js or any proper naming.
- Restructure the csfv_chat_module folder :
- README.md
- package.js
- MakeFile
- node_modules/
- config/
- services/
- chatServiceImple.js
- chatWebService.js
- ..etc
- docs/
- controllers/
- Add JSHint, all JS code must pass JSLint - check how we are doing this in csfv_core_module and replicate that here, the main files/folders are :
- build/
- lint
- lint_runner.js
- lint
- jake.bat
- jake.sh
- JakeFile.js
- build/
- All unit tests must be fixed for all functionality. It must cover accuracy and failure unit tests, and cover all possible cases, for admin and non-admin.
Chat Module Code
csfv_chat_module contains the chat server-side code.
Testing Current Logic
If you need to test how the chat backend work with frontend, you can deploy csfv_chat_frontend_app and play around with it.
Github Code
The code is located in private github repository, http://github.com/topcoderinc please request access to get the code (if you don't already have it)
csfv_utilities_module
csfv_core_module
csfv_chat_frontend_app
Final Submission Guidelines
Submission Deliverables
Below is an overview of the deliverables:
- Patch file of the changes, include the hash commit used as basis for the work.
- A complete and detailed deployment document explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.