Клуб AIMT Microsoft Learn Student Ambassadors — это инициатива, возглавляемая студентами и координируемая сообществом под руководством Ашиша Уджвала , руководителя клуба. Этот клуб представляет собой инновационное и интересное сообщество, где студенты могут участвовать в различных технических и развлекательных мероприятиях, в том числе:
Целью данного проекта является создание полнофункционального веб-приложения, поддерживающего координацию деятельности клуба через панель событий, админ-панель, панель блога и многое другое.
Легко организовывать, управлять и участвовать в мероприятиях. Пользователи могут просматривать, регистрироваться и получать подробную информацию о предстоящих клубных мероприятиях.
Панель блогов с полной поддержкой CRUD, где пользователи и администраторы могут создавать, читать, обновлять и удалять блоги.
Управляйте всеми пользователями, событиями и блогами из централизованной панели администратора . Администраторы имеют полный контроль над платформой, включая отправку информационных бюллетеней и модерацию активности пользователей.
Бесшовные уведомления по электронной почте через Nodemailer . Пользователи получают уведомления о регистрации на мероприятия, обновлениях блога и других действиях по электронной почте.
Безопасная и надежная аутентификация пользователей с использованием веб-токенов JSON (JWT) . Роли и разрешения управляются для пользователей, администраторов и менеджеров событий.
Общение в реальном времени с помощью Socket.io обеспечивает динамичное и увлекательное взаимодействие между пользователями во время живых событий и чатов.
Вся платформа развернута и размещена в Azure, что обеспечивает быструю и масштабируемую производительность.
Посмотрите демонстрацию проекта и обучающее видео:
Этот проект построен на стеке MERN с дополнительными функциями для служб электронной почты и взаимодействия в реальном времени.
Коллекция пользователей :
Хранит информацию о пользователе, включая роли (администратор, пользователь), токены аутентификации и данные профиля.
Коллекция событий :
Хранит все данные, связанные с мероприятиями, включая сведения о мероприятиях, зарегистрированных пользователях и организаторах мероприятий.
Коллекция блогов :
Коллекция всех блогов, созданных пользователями, а также временные метки, категории и сведения об авторстве.
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.
Для настройки уведомлений по электронной почте интегрирован сервис Nodemailer. Вы можете настроить адрес электронной почты отправителя в файле .env, как показано в разделе «Локальная настройка».
Панель администратора позволяет:
Этот проект включает функцию чата в реальном времени с использованием Socket.io. Пользователи могут взаимодействовать во время мероприятий, оставлять комментарии в реальном времени и участвовать в обсуждениях в реальном времени.
В будущих версиях мы планируем добавить больше функций, таких как:
Чтобы запустить проект локально, выполните следующие действия:
Клонировать репозиторий
git clone https://github.com/AshishUjjwal/Microsoft-LSA-AIMT.git
Перейдите в каталог проекта
cd Microsoft-LSA-AIMT
Установить зависимости
npm install
cd client
npm install
Настройка переменных среды
Создайте файл .env в корневом каталоге и добавьте следующие переменные:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
[email protected]
EMAIL_PASS=your_email_password
Запуск приложения. Чтобы запустить сервер и клиент:
npm run dev
Доступ к приложению Откройте браузер и перейдите по адресу http://localhost:3000.
Этот проект стал важной частью программы Microsoft Learn Student Ambassadors. Он предназначен для содействия созданию сообщества и сотрудничеству между студентами и профессионалами.
Смело обращайтесь:
Мы приветствуем вклад сообщества! Если вы хотите внести свой вклад:
Для получения более подробной информации, пожалуйста, прочтите «Правила для участников».
This project is licensed under the MIT License - see the LICENSE file for details.