The Microsoft Learn Student Ambassadors AIMT Club is an initiative led by students and coordinated by the community under the leadership of Ashish Ujjwal, the Club Lead. This club is an innovative and engaging community where students can participate in various technical and fun activities, including:
The goal of this project is to create a full-featured web application that supports the coordination of the club's activities through an event panel, admin panel, blog panel, and more.
Easily organize, manage, and participate in events. Users can browse, register, and get details on upcoming club events.
A fully CRUD-enabled blog panel where users and admins can create, read, update, and delete blogs.
Manage all users, events, and blogs from a centralized Admin Panel. Admins have complete control over the platform, including sending newsletters and moderating user activity.
Seamless email notifications via Nodemailer. Users get notified about event registration, blog updates, and other activities through emails.
Secure and reliable user authentication using JSON Web Tokens (JWT). Roles and permissions are managed for users, admins, and event managers.
Real-time communication with Socket.io enables dynamic and engaging interaction among users during live events and chats.
The entire platform is deployed and hosted on Azure, ensuring fast and scalable performance.
Check out the project demonstration and walkthrough video:
This project is built on the MERN Stack with additional features for email services and real-time interaction.
Users Collection:
Stores user information, including roles (admin, user), authentication tokens, and profile data.
Events Collection:
Stores all event-related data including event details, registered users, and event organizers.
Blogs Collection:
A collection of all user-created blogs, along with timestamps, categories, and authorship details.
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.
To set up email notifications, the Nodemailer service is integrated. You can configure the sender email in the .env file as shown in the Local Setup section.
The Admin Panel allows you to:
This project includes a real-time chat feature using Socket.io. Users can interact during events, post live comments, and participate in real-time discussions.
In future versions, we aim to add more features such as:
To run the project locally, follow these steps:
Clone the Repository
git clone https://github.com/AshishUjjwal/Microsoft-LSA-AIMT.git
Navigate to the Project Directory
cd Microsoft-LSA-AIMT
Install Dependencies
npm install
cd client
npm install
Set up Environment Variables
Create a .env file in the root directory and add the following variables:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
[email protected]
EMAIL_PASS=your_email_password
Run the Application To run the server and client:
npm run dev
Access the Application Open your browser and go to http://localhost:3000.
This project has been a significant part of the Microsoft Learn Student Ambassadors program. It's designed to foster community building and collaboration among students and professionals alike.
Feel free to reach out on :
We welcome contributions from the community! If you'd like to contribute:
For more details, please read the Contributing Guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.