This project is designed to manage volunteers and their scheduling within a weekly transport system. It includes features for volunteer management and allocation to weekly transport schedules.
The application consists of several components and services to facilitate volunteer management and scheduling of transportation:
-
AppComponent
- Main component containing navigation menu for Volunteers List and Transport Schedule pages.
-
VolunteersListComponent
- Displays existing volunteers. (Pre-loaded list from server; no addition needed)
-
EditVolunteerComponent
- Allows editing of volunteer details using reactive forms.
-
TransportScheduleComponent
- Displays the weekly transport schedule where volunteers can be assigned to specific days.
-
EditVolunteerComponent
- Includes a checkbox list for selecting days the volunteer is available.
- Upon saving, validates against the server to ensure no conflicting assignments exist (e.g., volunteer previously scheduled for a day no longer selected).
-
TransportScheduleComponent
- Each day of the week is represented as a slot where volunteers can be assigned.
- Dropdown lists display potential volunteers available for each day.
- Saving the schedule commits all changes to the server.
- Components: VolunteersListComponent, EditVolunteerComponent
- Service: VolunteerService
- Methods:
getVolunteersList()
: Retrieves list of existing volunteers.saveVolunteer(volunteerData)
: Saves volunteer details including availability.
- Methods:
- Component: TransportScheduleComponent
- Service: ScheduleService
- Methods:
getAvailableVolunteers(day)
: Retrieves potential volunteers available for a specific day.saveWeeklySchedule(scheduleData)
: Saves the weekly transport schedule.
- Methods:
- Ensures no overlapping assignments are saved without confirmation from the user to remove conflicting schedules first.
- Clone Repository:
git clone https://github.com/LeahYudaikin/angular-project.git
- Install Dependencies:
npm install
- Run Development Server:
cd server
dotnet watch
- Run Projct:
cd my-project
npm start
- enter http://localhost:4200/