Skip to content

Pranav-chaudhari-2006/ACM-TASK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎯 Smart Event Manager

C++ Platform Build License

A modular, feature-rich C++ CLI application for managing events with admin authentication, smart conflict detection, undo support, and email reminders.


πŸ“– Overview

Smart Event Manager is a command-line C++ application that helps you organize personal and professional events with a clean, colorized terminal interface. It uses Object-Oriented Programming, file-based persistence (CSV), and a role-based access system to provide a robust event management experience.


πŸ‘¨β€πŸ’» Author

Pranav Chaudhari β€” 2nd Year, PCCOE
πŸ“§ pranavchaudhari2006@gmail.com
πŸ”— github.com/Pranav-chaudhari-2006


πŸ›  Tech Stack

Technology Purpose
C++17 Core language with OOP and STL
STL β€” vector, stack, map, regex Data structures and algorithms
fstream / CSV Persistent file-based event storage
PowerShell (send_mail.ps1) Email reminder dispatch via SMTP
ANSI Color Codes Colorized terminal output
MinGW g++ Compiler toolchain (Windows)

πŸ“ Folder Structure

ACM-TASK/
β”œβ”€β”€ assets/
β”‚   └── screenshots/          # All UI screenshots
β”‚       β”œβ”€β”€ 01_admin_access.png
β”‚       β”œβ”€β”€ 02_main_menu.png
β”‚       β”œβ”€β”€ 03_add_event.png
β”‚       └── ...
β”œβ”€β”€ include/                  # Header files (.h)
β”‚   β”œβ”€β”€ Event.h               # Event class declaration
β”‚   β”œβ”€β”€ EventManager.h        # EventManager class declaration
β”‚   └── Utils.h               # Utility functions & color codes
β”œβ”€β”€ src/                      # Implementation files (.cpp)
β”‚   β”œβ”€β”€ Event.cpp             # Event constructors, getters, serialization
β”‚   β”œβ”€β”€ EventManager.cpp      # All event management logic
β”‚   └── main.cpp              # Entry point, menu loop, role system
β”œβ”€β”€ obj/                      # Compiled object files (auto-generated)
β”œβ”€β”€ .clangd                   # Clangd config (fixes IDE analysis for any IDE)
β”œβ”€β”€ compile_commands.json     # Universal IDE language server config
β”œβ”€β”€ build.bat                 # One-click Windows build & run script
β”œβ”€β”€ Makefile                  # Alternative make-based build
β”œβ”€β”€ send_mail.ps1             # PowerShell email dispatch script
β”œβ”€β”€ events.csv                # Auto-generated event data (runtime)
└── README.md

✨ Features

πŸ” Role-Based Access

  • Admin β€” Full access (add, edit, delete, send reminders, statistics, sort, undo)
  • User β€” Read-only access (view all, view today, view by date, search)
  • Admin access is protected by a passcode

πŸ“… Event Management (Admin)

Feature Description
Add Event Create events with ID, name, type, date (DD-MM-YYYY), time (HH:MM), location
Edit Event Modify any field of an existing event by ID
Delete Event Remove an event permanently by ID
Sort Events Sort all events chronologically by date and time
Undo Last Operation Stack-based undo β€” reverses the last add/edit/delete

πŸ” Viewing & Search (Admin + User)

Feature Description
View All Events Tabular display of all scheduled events
View Today's Events Automatically filters events for the current date
View By Date Filter events for any specific date
Search Events Keyword search across event name and type (case-insensitive)

πŸ›‘ Smart Validation

  • Conflict Detection β€” Warns if two events clash at the same date/time
  • Duplicate Detection β€” Prevents adding events with the same ID or identical name+date+time
  • Smart Slot Suggestions β€” Suggests free time slots when a conflict is found
  • Date & Time Validation β€” Enforces DD-MM-YYYY and HH:MM formats via regex

πŸ“Š Statistics & Reminders

  • View Statistics β€” Shows total events, breakdown by type, upcoming events count
  • Send Reminders β€” Reads an attendee CSV file and sends email reminders via PowerShell SMTP

πŸš€ How to Run

Prerequisites

  • Windows OS
  • MinGW g++ with g++ in your PATH
  • PowerShell (for email feature)

1. Clone the Repository

git clone https://github.com/Pranav-chaudhari-2006/ACM-TASK.git
cd ACM-TASK

2. Build & Run (One Command)

.\build.bat

This compiles all source files and launches the application automatically.

3. Manual Compilation

g++ -std=c++17 -Wall -Iinclude src/main.cpp src/Event.cpp src/EventManager.cpp -o SmartEventManager.exe
.\SmartEventManager.exe

4. Configure Email Reminders (Optional)

Edit send_mail.ps1 and set your Gmail credentials:

[string]$User = "your_email@gmail.com"
[string]$Pass = "your_app_password"   # Gmail App Password, not your regular password

Note: Use a Gmail App Password, not your main password.


πŸ–₯ Sample CLI Usage

===== Smart Event Manager =====
 Admin Menu:
  1.  Add Event
  2.  Edit Event
  3.  Delete Event
  4.  View All Events
  5.  View Today
  6.  View by Date
  7.  Search Event
  8.  Send Reminders
  9.  View Statistics
  10. Sort Events (By Date)
  11. Undo Last Operation
  12. Exit
Enter choice: _

Default Admin Passcode: 1234


πŸ–Ό Screenshots

Feature Preview
πŸ”‘ Admin Access Admin Access
πŸ“‹ Main Menu Main Menu
βž• Add Event Add Event
✏️ Edit Event Edit Event
πŸ“œ View All Events View All
πŸ“… View Today View Today
πŸ”ƒ Sort Events Sort
πŸ—‘οΈ Delete Event Delete
πŸ—“οΈ View By Date By Date
πŸ” Search Event Search
πŸ“Š View Stats Stats
↩️ Undo Operation Undo
❌ Exit Exit

πŸ“œ License

This project is licensed under the MIT License β€” see the LICENSE file for details.

About

Event scheduler Prototype using command line interface

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors