Wireless communication demands increase sharply with the explosive growth of mobile devices. The communications mainly depend on the infrastructure-based networks, e.g., WLANs and cellular networks. However, such wireless connections may be unavailable in crowded areas (e.g., concert and conference hall) or interrupted by infrastructure failures caused by earthquake or tsunami. These promote the evolution of local communication systems over device-to-device communication, such as Bluetooth and Wi-Fi Direct (WFD). However, none of existing studies construct a full-featured local communication system, and they do not consider how to support the user mobility either. In this paper, we implement and evaluate the performance of a WFD-based local communication system. First of all, we improve the intra-group communication by the native implementation of WFD on Android platform, and propose an application-layer forwarding solution for the inter-group communication, which can be applied to three or more connected groups. Then, we put forward a self-adaptive handover mechanism taking user mobility and node failures into account. To deal with the uncertainty in handover decision procedure, a fuzzy logic based normalized quantitative decision algorithm (FNQD) with the weights derived from fuzzy analytic hierarchy process (FAHP) is utilized. Finally, we evaluate the performance of the system through both simulation and experiment analysis. Results show that we can get a maximum throughput of 31.7 Mbps for the intra-group communication and a maximum goodput of 4.76 Mbps for the inter-group communication. What's more, mobile devices could perform various types of handover according to their roles and status, which could improve the robustness of the local communication system.