This is a project that we use for evaluating the technical skills of potential team members.
Build a web application that allows the user to create and view "feature requests". A "feature request" is a request for a new feature that will be added onto an existing piece of software. The necessary fields are:
- Title: A short, descriptive name of the feature request.
- Description: A long description of the feature request.
- Client: A selection list of clients ("Client A", "Client B", "Client C").
- Priority: A selection list of priorities ("Undetermined", "Critical", "High", "Medium", "Low").
- Create Timestamp: Timestamp the request was created.
- Target Date: The date that the client is hoping to have the feature.
The following are the tools our team favors. They are preferred, but not required, for this project.
- Server Side Scripting: Python 2.7+ or 3.5+
- Server Framework: Flask, Django, etc.
- Database: MySQL, SQLite, etc.
- ORM: Sql-Alchemy
- JavaScript: Vue.js
Create your own public repo on github. Build your solution in your repo, and include a README.md file with detailed instructions to run your app. Email the URL for your github repo to your hiring manager once you begin the project so we can review your progress.
One of the major goals in this project is to see how you fill in ambiguities in your own creative way. There is no such thing as a perfect project here, just interpretations of the instructions above, so be creative in your approach.
We want to be respectful of your time and set realistic expectations for submission. To help guide you, we have included the list below which details common practices in the best projects we receive. It is rare for a project to match every item in this list, but the candidates we hire typically showcase several of these features in their work.
-
Open Source. We have a strong affinity for open source technology. If your go-to technology stack includes proprietary software, you won't be helping yourself to use it in this project.
-
Decoupled Backend. We are looking for candidates with a strong understanding of the entire web application stack. The best projects will completely decouple the backend and the front end and communciate via API.
-
Test Suites with Continuous Integration. Enterprise production requires rock solid stability. All code submitted into WCF repos must contain unit and regressions tests, so we favor candidates with experience writing quality tests.
-
Usable, Responsive Interface. There are many accessible CSS frameworks out there such as Bootstrap. All modern web applications should be responsive and these frameworks make it very easy to create a modern interface that adheres to established design principles and formats well on all devices.
-
MVVM Frontend. The modern web is highly interactive. Projects like Vue.js make it very easy to deploy HTML bindings that interact with interface elements dependably and efficiently.
Thank you for your time. We are excited to review your project!