Hola,
para el desarrollo de este proyecto se mezclan varias tecnologías, ten en cuenta que este foro es exclusivo de HTML, por lo que solo se deben realizar preguntas relacionadas.
Evitando la parte servidora del problema, donde tendrás que utilizar tu lenguaje de programación favorito (PHP, Java, Perl...).
Del lado del HTML, que es lo que nos ocupa aquí:
- Para mostrar un cuadro con un numerito, indicando las notificaciones existentes, vas a tener que realizar una consulta que te devuelva dicho número. Sin embargo, para que esto sea en tiempo real, esa consulta has de hacerla en AJAX, de modo que sea un proceso AJAX el que pregunte qué número debe poner ahí. Este proceso puede ejecutarse cada X tiempo, de manera que, si un usuario se encuentra en la página y le lanzan una notificación nueva, la pueda ver al instante, aunque no la haya abandonado.
- Para mostrar cuadros de diálogos existen multitud de controles por ahí. Van desde desarrollos simples hechos con CSS y HTML, hasta algunos mas complejos que integran funcionalidad Javascript. Yo te aconsejaría hacer una búsqueda por la web. Sin embargo, puedes mirar jquery como ejemplo de lo que te comento.
- Existen mas opciones que hacer que AJAX te devuelva un HTML. En el caso que quieras ahorrar tráfico de red, puedes optar por hacer que AJAX te pase exclusivamente los datos y luego montar tú la composición HTML en tu propia página (para estos casos se suele usar JSON para transmitir los datos y luego se usa DOM para componerlo en el cliente).
- Esta parte es la que te comentaba en el punto anterior. El formato ya lo eliges tu
Espero que te sirva de ayuda, por lo menos para tener en cuenta otros puntos de vista sobre el mismo problema.
Salu2