I'm looking for a PHP developer to design, develop, and maintain a PHP REST API. The API must support JSON and msgpack initially with support for others later. The API will revolve around Automation products.
The framework based shall be Symfony or Silex (you choose, just tell us why you choose it).
- Design and document the REST API
- Technical analysis and implementation
- Review business requirements working with other team members
- Perform a technical analysis of requirements
- Produce a solid, detailed technical design
- Write clean, modular, robust code to implement the desired requirements
- Output similar to [url removed, login to view] - displaying both HTML, JSON, msgpack depending on the Accept header (focus will be on JSON/msgpack at first and then later add HTML out.
- Layout suggestions: [url removed, login to view]
- Experienced API designer
- PHP5 (3+ years)
- Amazon/AWS S3 (preferred)
- A complete Elance profile
- References or an established reputation on Elance preferred
- Knowledge of common design patterns and the best places to actually use them.
- Spoken and written English.
- GIT - Ability to update your own branch every 3 hours of work, with working versions tagged as either "broken" or "almost works",
- Cassandra NoSQL
- Amazon Web Services
- Strong with command-line Linux.
- Location: remote
- Full-time (40 hours per week).
- Hourly rate: to be negotiated.
- Virtual server will be provided
Kindly start your bid with "I am a PHP and MySQL expert" to let us know that you have read the job description in its entirety. We prefer individual developers/freelance over outsourcing companies.
I've started to outline how I want the API to look like when being used. It may give some ideas on how to design it and the scope of project: [url removed, login to view]
- All calls must have 'apikey'.
- Calls can be either authenticated or anonymous. However, authenticated calls will provide additional results.
* A PHP class should be built to handle advanced permissions. There are various objects that can be read/written to by various people. For example, Sara can read Obj X, Joe can read and write to object X. Anonymous cannot do either.
The following is an example of objects that will be managed by the API:
- Users - Registering, updated, and authorizating users. Setting permissions on who can do what.
- Groups - Develop group membership system. So rules can be applied to groups or people.
- Devices - Automation devices. Users or groups will be differing permissions.
- Computers - Computers run the software that devices are connected to. API needs to be able to update settings.
- Modules - Modules extend the features of computer. API needs to be able to configure the module settings.
- Display - Users can create virtual display layouts. The display allows users to place icons/graphics anywhere on a layout to activate devices. The API needs to store the displayID along with the icon location (X,Y) as well as what device it's linked to.
Decided to use Laravel 5 or lumen instead of symphony.