Yo veo dos opciones.
Crear una aplicación web, puedes acceder a ella desde cualquier so, dispositivo, etc. Para esto yo recomiendo, personalmente, el framework spring boot. Programas una aplicación en java con este framework y listo. Si además usas bootstrap, creas un sólo html y te visualizará bien en cualquier dispositivo. Tienes plantillas muy buenas buscando un poco.
Crear un servicio web y varios clientes. Puedes crear un servicio web rest con nodejs y consumirlo con un cliente o varios creados en el lenguaje que te apetezca, java, c#, js...
Yo me decantaría por la primera. Creas una sóla aplicación y el framework te provee de la mayoría de funcionalidad que necesitas, autenticación, control de sesión, usuarios paralelos, despliegue en el servidor.... Y para la interfaz de usuario una plantilla bootstrap, y un motor de plantillas como swig o thymeleaf.
La BBDD, la que tu quieras, cualquier BBDD te va a ofrecer integridad de datos y usuarios simultaneos. Eso ya depende de si quieres montarla tú o contratar un servicio de alojamiento externo. Yo la montaría en el mismo servidor donde vas a desplegar la aplicación o servicio. Y recomiendo una SQL relacional. Si te decides por Spring Boot usar una sql con hibernate/jpa es muy sencillo.