Received : Monday, March 11 @ 1:23 PM
Received : Monday, March 18 @ 7:45 AM
Original Assignment : ASSIGNMENT.md
The contents of this deliverables package are intended to demonstrate significant understanding and skill in problem solving, application design considerations, and the MEAN web technology stack. There are main parts to the application with some suplimentary scripts for supporting the deployment for local development and remote staging (if desired.) See the included document Initialization and Setup for development and staging deployment. The parts are arranged in the following subfolders :
- An Express/Node API project that supplies endpoints for consumption.
- An Angular SPA for interaction with the API and application as a whole
Chosen Language : JavaScript
'robot-express-ng' is an application with a visually simple front-end that hides some significantly complex back-end logic. The app navigation is along the top. Three "pages" make up the SPA; Leaderboard, Robots, and Manage.
- Leaderboard presents the top four robots according to their total task score tally
- Robots presents a styled list of all robots being tracked
- Manage allows the user to submit a new robot form with a name and robot type
At the bottom of the page is a section for status messages that will update and run asynchronously while the application is running.
- Collecting input (robot name, and robot type) from user for robot creation
- On creation, new robots receive 5 tasks, at random, from the list of example tasks
- Tasks are completed according to the seqence of durations for each particularly assigned task.
- Robots are able to be created while other robots are finishing tasks. The new robots tasks are added to the queue asynchronously
- Implemented leaderboard of highest scoring robots
- Tasks are restricted according to robot type using a flexible solution
- Persistance has been implemented using MongoDB for tasks, bots, and leaderboard functionality.
- The custom logo has been rendered out as an SVG and included as
image-data
for native browser support and scalability - The entire application has been concieve and implemented using an
MVC
methodology (API/Front-end separation, Observables/Subscribers, Controllers, Services, and Models
) - A remote MongoDB document store, through mLab, has been provided for previewing without local
mongodb
install.
Given more time a few things that I would like to implement and explore with this project.
- Implement more robust error loging
- Consider using an adapter pattern to sit between the API
services
and some of the more complexcontrol
logic areas - User accounts, authentication, and authorization controls
- More style treatment on the front-end
Solution written and produced by Ben Nowak
Original Challenge Authors
Scott Hoffman https://github.com/scottshane
Olivia Osby https://github.com/oosby