We are looking for a backend developer to create a website with user accounts, registration and login and profile pages.
The website is a web catalog for event services - a „free event agency“.
The catalog will list „projects“ and „events“. We will cover these two terms in the following text.
The website will be launched in German, we plan more language versions in the future. System language and backend language is English.
Future language versions will all use the same database. This requires for a multilingual database.
We want you to deliver the database architecture and the html/php/… skeleton pages.
We expect good and elegant code as well as great commentary/documentation for your code.
You don’t do any front end design.
It may be a good idea to use a noSQL database. Please share with us all frameworks and techniques you would like to use.
We will give more detailed specifications, once we have chosen a candidate and discussed what framework we will use.
Feel free to ask if you have any questions!
-User registration with email, username and password, with email verification.
-users can create „projects“ to present their service.
-projects contain (amongst other things):
-from the project address (city, ZIP-Code, street, country), we need an automatic calculation of the geolocation. We need a free geocoding service like openstreetmap. Alternatively you can recommend other options.
-the project category is to be chosen from a multilingual collection of categories in the database. (E.g. en: Wedding Band, de: Hochzeitsband / en: Jazz Singer, de: Jazz Sänger). en=English, de=German. There will be several hundred categories, each one in several languages.
-each category has at least one parent category. Parent categories are again multilingual.
-rating system for projects (one to five stars, different rating-categories). Everybody can give a rating. Should be protected via re-captcha or similar.
-rating categories are multilingual
- Any user can create any number of projects. When creating a project, the user is stored as Project Creator. The Project Creator of a project is supposed to be changed never.At the same time, the Project Creator will be a Project Administrator of the project.
A project can have any number of Project Administrators. Project Administrators can administer/edit the project. Any Project Administrator can add or remove further/other Project Administrators. Project Administrators can give up their Administrator status if they wish.
-project pages are dynamic pages and get an own URL: www.ourwebsite.de/project-name
- a project (not a user!) can create an event.
- „event owner“ and „event administrator“ roles will work on the same principle as for projects with the only difference that projects administer events.
- for events, we will call the administrators „event hosts“
- event pages contain( amongst other things):
event category (from multilingual collection), event address,
event profile photo,
event photo gallery.
- event pages are dynamic pages and get an own URL: www.ourwebsite.de/event/yy/mm/dd/event-name
OTHER PAGES ON THE WEBSITE
- home page
We need two search fields, WHAT? and WHERE?
WHAT: Autocompletion with the categories of our category collection in the current language.
WHERE: A city.
Search Results: list all projects which match the category. Sort by distance, rating, or alphabetically.
We need two search fields, WHEN? and WHERE?
WHEN: A period of time, start date and end date.
WHERE: A city.
Search Results: list all events that match. Sort by distance.
-about (static page): text.
-contact (static page): text.