MySQL posiada wsparcie dla danych przestrzennych, aktualnie chcemy wykorzystać sposób niestandardowy opisany [[http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL|tutaj]]. Użycie kolumn long (longitude) i lat (latitude). Wciąż jesteśmy w trakcie analizy dokumentacji MySQL pod kontem SRID, tworzenia punktów w przestrzeni PointFromText() i innych funkcji geometrycznych. Jeśli okaże się, że będzie to bardziej wydajne od tego alternatywnego sposobu to wykorzystamy wbudowane narzędzia MySQL. Zakres funkcjonalności systemu: * wyszukiwanie ogłoszeń * przeglądanie szczegółów ogłoszeń * zapisywanie ogłoszeń * wyszukiwanie ogłoszeń na mapie Funkcjonalności dla firm: * zakładanie konta firmy * logowanie do panelu firm * edycja danych konta firmowego * dodawanie ogłoszeń * przeglądanie ogłoszeń aktualnych oraz archiwalnych Funkcjonalności dla moderatora i administratora: * aktywacja dodanych ogłoszeń * edycja wszystkich ogłoszeń * edycja danych firm * logowanie do panelu administratora Przy wyborze metodyki zarządzanie projektem kierujemy się w stronę metodyk zwinnych. Najbardziej odpowiednia dla naszego stylu programowania byłaby metodyka XP (Extreme Programing) z pewnymi zmianami. Przede wszystkim chcielibyśmy się trzymać pewnych wzorców projektowych w tym zachowania architektury MVC, oraz ustalić (co już zrobliśmy) w miarę możliwości zakres pełnej funkcjonalności systemu, a w kolejnych iteracjach tworzyć projekt spełniający kolejne wymagania. Z różnych dostępnych usług geokodowania zdecydowaliśmy się na: [[https://developers.google.com/maps/documentation/geocoding/]]. Obsługuje on do 2500 zapytań dziennie, co powinno nam wystarczyć, gdyż chcemy przechowywać współrzędne w bazie, a z geokodera korzystać tylko w przypadkach gdy nie posiadamy współrzędnych danej miejscowości czy zipcode i każdorazowo zapisywać je do bazy po otrzymaniu odpowiedzi z tej usługi. http://www.tech-problems.com/calculating-distance-in-mysql-using-spatial-point-type/