CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management
Background
Manual mentor assignment was inefficient. Auto-assignment was implemented.
Project Overview
Enhance mentor management in Expertiza.
Challenges
- No email notifications for mentor assignments.
- Poor team listing clarity.
Tasks
Email Notifications
Implement email notifications.
Mentor Meeting Management
Improve mentor meeting view.
Backend and Controller Updates
Update backend logic.
Refactor Existing Codebase
Clean and standardize code.
Testing and Validation
Test and validate changes.
Implementation
Email Notifications
- Code and explanation for email notifications.
Mentor Meeting Management
Enhanced team table with dynamic columns and meeting management.
Backend and Controller Updates
Backend restructured for efficiency. Added destroy route and meetings controller.
- POST /meetings
def create
@team = Team.find(params[:team_id])
@meeting = @team.meetings.new(meeting_params)
if @meeting.save
# TODO: Re-implement email notification for meeting creation
render json: { status: 'success', message: 'Meeting date added' }, status: :created
else
render json: { status: 'error', message: 'Unable to add meeting date', errors: @meeting.errors.full_messages }, status: :unprocessable_entity
end
end
# DELETE /meetings/:id
def destroy
puts "Team ID: #{params[:team_id]}"
puts "Meeting ID: #{params[:id]}"
puts "Meeting: #{@meeting.inspect}"
if @meeting.destroy
render json: { message: 'Meeting deleted successfully' }, status: :ok
else
render json: { error: 'Failed to delete meeting' }, status: :unprocessable_entity
end
end
The original code did not adhere to standard CRUD (Create, Read, Update, Delete) naming conventions, leading to a complete rework to align with these established practices for better maintainability and clarity.
Refactor Existing Codebase
Cleaned and standardized codebase.
Testing and Validation
Relevant Links
- Github Repository: https://github.com/jmwinte3/expertiza
Team
Mentor
Ed Gehringer
Members
Jacob Winters Alex Wakefield John Buchanan