CSC/ECE 517 Spring 2025 - E2504. Mentor-meeting management: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 2: | Line 2: | ||
==Background== | ==Background== | ||
Manual mentor assignment was inefficient. Auto-assignment was implemented. | |||
==Project Overview== | ==Project Overview== | ||
Enhance mentor management in Expertiza. | |||
== Challenges == | == Challenges == | ||
* No email notifications for mentor assignments. | |||
* Poor team listing clarity. | |||
== Tasks == | == Tasks == | ||
=== Email Notifications === | === Email Notifications === | ||
Implement email notifications. | |||
=== Mentor Meeting Management === | === Mentor Meeting Management === | ||
Improve mentor meeting view. | |||
=== Backend and Controller Updates === | === Backend and Controller Updates === | ||
Update backend logic. | |||
=== Refactor Existing Codebase === | === Refactor Existing Codebase === | ||
Clean and standardize code. | |||
=== Testing and Validation === | === Testing and Validation === | ||
Test and validate changes. | |||
== Implementation == | == Implementation == | ||
=== Email Notifications === | === Email Notifications === | ||
* Code and explanation for email notifications. | |||
=== Mentor Meeting Management === | === Mentor Meeting Management === | ||
Enhanced team table with dynamic columns and meeting management. | |||
=== Backend and Controller Updates === | === 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 === | === Refactor Existing Codebase === | ||
Cleaned and standardized codebase. | |||
=== Testing and Validation === | === Testing and Validation === | ||
Line 47: | Line 77: | ||
== Team == | == Team == | ||
===Mentor=== | ===Mentor=== | ||
Ed Gehringer | |||
=== Members === | === Members === | ||
Jacob Winters | |||
Alex Wakefield | |||
John Buchanan |
Revision as of 20:46, 23 March 2025
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