#7 Hay 2 cosas. Puedes aprender BIEN node, su filosofía, como trabajar con el, hacer cosas a ""bajo"" nivel para ver como funcionan, o puedes obviar todo eso y aprender Express del tirón.
Yo personalmente haría primero eso, y me leería Node In Action. Es un LIBRACO, a mi me encantó.
Te enseña un poco la filosofía de Node, qué ventajas te ofrece (por ejemplo para aplicaciones en tiempo real, para lo cual te enseña a construirte tu propio chat con multiples salas), fundamentos de node...
Luego te enseña (para mi la mejor parte), a crear páginas web con node, solo node. Eso te enseñará realmente como funciona todo por debajo, como trabaja node con las peticiones y respuestas (request, response) y crear simples páginas, crear REST, paginas con formularios... No cosas muy útiles pero te enseñarán como funcionan las cosas "por dentro".
También enseña Connect, connect es una librería que express usaba antiguamente. Básicamente te enseñará un poco la filosofía de express (los middleware) e incluso implementar esa filosofía tu a mano para aprender mejor.
Te enseña un poco de express (es la versión 3 de express, así que si lees el libro y haces los ejemplos, te recomiendo encarecidamente que uses las versiones que te aconseja el libro (o su codigo fuente) para que no tengas problemas).
Luego enseña alguna cosa más avanzada.
Una vez sepas bien node, o decidas saltarte esto, yo leería Mastering Web Application Development with Express. Un libro que curiosamente empezó teniendo mala critica en amazon, pero que a mi me sorprendió muchísimo. No solo te enseña express, si no que además te lo enseña de una forma muy especial para entenderlo mejor.
Yo creo que con estas 2 lecturas (al menos por ahora) tienes para coger un buen nivel sobre el tema.
Olvidate de Derby, jamás he conocido a nadie que haya usado eso.
Si vas a usar mongo, te recomiendo mongoose. Estoy casi seguro que en uno de estos dos libros te enseñarán a usarlo si o si.
Sobre tu aplicación, sí, node (y realmente cualquier otra cosa) te viene bien para el proyecto. El segundo libro tiene un muy buen tema dedicado al REST, con buenos consejos e ideas.
Realmente necesitas escribir una pequeña aplicación REST (son su sistema de autentificación) que responda a ciertas peticiones y devuelva de tu mongodb pues lo que necesite. Eso es super básico y simple de hacer.
Sobre lo de frontend... Node es capaz de hacer aplicaciones completas por si mismo (usando cualquier sistema de plantillas de HTML (no uses jade por favor)), pero es bien cierto que ahora se lleva más el tener un backend solo para REST y luego alguna aplicación de frontend que usará dicho backend para sus peticiones.
Sobre qué frontend usar, angular, react, ember... Y en mi opinión en ese orden, pero realmente el que más coraje te de.
Para tu app tienes que ver las distintas "partes"
Una parte es el backend, ahi elegimos node. Este node será capaz de recibir peticiones y devolver los resultados acordes. También encargado de la autentificación y echar para atrás a quien no pueda usarla.
Va a tener algún cliente web? Quizá un admin o una página para hacer peticiones al backend. Si es así, te montas un angular, react o lo que sea. Por supuesto como aplicación totalmente independiente al node.
Clientes android e IOS. Aquí ya pues también lo que veas. O te montas 2 aplicaciones nativas para cada uno, las cuales hagan peticiones al node para trabajar, o puedes usar cordova para hacer aplicaciones hibridas (medio nativas, medio web) con la ventaja de programar solo una y que funcione para android e IOS a la vez. Aquí es bastante recomendable usar Ionic (cordova + angular) pues se lo están currando la vida y le están metiendo muy muchas optimizaciones para que parezca nativo.
No sé que más decirte, pregunta si tienes más dudas.