El Club AIMT de Estudiantes Embajadores de Microsoft Learn es una iniciativa dirigida por estudiantes y coordinada por la comunidad bajo el liderazgo de Ashish Ujjwal , el líder del club. Este club es una comunidad innovadora y atractiva donde los estudiantes pueden participar en diversas actividades técnicas y divertidas, que incluyen:
El objetivo de este proyecto es crear una aplicación web con todas las funciones que respalde la coordinación de las actividades del club a través de un panel de eventos, un panel de administración, un panel de blog y más.
Organice, administre y participe fácilmente en eventos. Los usuarios pueden navegar, registrarse y obtener detalles sobre los próximos eventos del club.
Un panel de blog totalmente compatible con CRUD donde los usuarios y administradores pueden crear, leer, actualizar y eliminar blogs.
Administre todos los usuarios, eventos y blogs desde un panel de administración centralizado. Los administradores tienen control total sobre la plataforma, incluido el envío de boletines y la moderación de la actividad de los usuarios.
Notificaciones por correo electrónico fluidas a través de Nodemailer . Los usuarios reciben notificaciones sobre el registro de eventos, actualizaciones de blogs y otras actividades a través de correos electrónicos.
Autenticación de usuario segura y confiable mediante JSON Web Tokens (JWT) . Se administran funciones y permisos para usuarios, administradores y administradores de eventos.
La comunicación en tiempo real con Socket.io permite una interacción dinámica y atractiva entre los usuarios durante eventos y chats en vivo.
Toda la plataforma está implementada y alojada en Azure, lo que garantiza un rendimiento rápido y escalable.
Vea la demostración del proyecto y el vídeo tutorial:
Este proyecto se basa en MERN Stack con funciones adicionales para servicios de correo electrónico e interacción en tiempo real.
Colección de usuarios :
Almacena información del usuario, incluidos roles (administrador, usuario), tokens de autenticación y datos de perfil.
Colección de eventos :
Almacena todos los datos relacionados con el evento, incluidos los detalles del evento, los usuarios registrados y los organizadores del evento.
Colección de blogs :
Una colección de todos los blogs creados por usuarios, junto con marcas de tiempo, categorías y detalles de autoría.
This project uses JWT for user authentication and role-based authorization. The following user roles are supported:
1. Admin:
Full access to all resources including events, users, and blogs.
2. Event Manager:
Limited access to manage events and moderate related user activities.
3. User:
Can register for events, read blogs, and contribute by writing blog posts.
Para configurar notificaciones por correo electrónico, se integra el servicio Nodemailer. Puede configurar el correo electrónico del remitente en el archivo .env como se muestra en la sección Configuración local.
El Panel de administración le permite:
Este proyecto incluye una función de chat en tiempo real utilizando Socket.io. Los usuarios pueden interactuar durante eventos, publicar comentarios en vivo y participar en discusiones en tiempo real.
En versiones futuras, nuestro objetivo es agregar más funciones como:
Para ejecutar el proyecto localmente, siga estos pasos:
Clonar el repositorio
git clone https://github.com/AshishUjjwal/Microsoft-LSA-AIMT.git
Navegar al directorio de proyectos
cd Microsoft-LSA-AIMT
Instalar dependencias
npm install
cd client
npm install
Configurar variables de entorno
Cree un archivo .env en el directorio raíz y agregue las siguientes variables:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
[email protected]
EMAIL_PASS=your_email_password
Ejecute la aplicación Para ejecutar el servidor y el cliente:
npm run dev
Acceda a la aplicación Abra su navegador y vaya a http://localhost:3000.
Este proyecto ha sido una parte importante del programa Microsoft Learn Student Ambassadors. Está diseñado para fomentar la construcción de comunidades y la colaboración entre estudiantes y profesionales por igual.
No dude en comunicarse con:
¡Agradecemos las contribuciones de la comunidad! Si desea contribuir:
Para obtener más detalles, lea las Pautas de contribución.
This project is licensed under the MIT License - see the LICENSE file for details.