As part of the challenge you will have to fork this repository and add your backend application in the forked version of this repository.
Your task is to develop a CRUD application that adheres to the following specifications and requirements:
-
Purpose: Create a backend service that Creates, Reads, Updates, and Deletes volunteers from a database.
-
Technology Stack: You are free to choose the technology stack (programming languages, database systems, frameworks) that you are most comfortable with.
-
Create: Implement functionality to add new records to your database. For example, adding a new volunteer.
-
Read: Develop methods to retrieve and display records from the database. This could include listing all volunteers or searching for a specific user.
-
Update: Allow for modifications to existing records, such as updating a volunteer's contact information.
-
Delete: Provide a way to remove records from the database safely.
-
Field Name: Data Type Description Example
-
volunteer_id: UUID / INT (PK) Unique identifier for each volunteer. 123e4567-e89b-12d3-a456-426614174000
-
first_name: VARCHAR Volunteer's first name. John
-
last_name: VARCHAR Volunteer's last name. Doe
-
email: VARCHAR Volunteer's email address. john.doe@example.com
-
phone_number; VARCHAR Volunteer's phone number. +1234567890
-
date_of_birth: DATE Volunteer's date of birth. 1990-01-01
-
address: VARCHAR Volunteer's address. 123 Main St, Anytown, AS
-
skills: VARCHAR / ARRAY List of volunteer skills. ["First Aid", "Counseling"]
-
availability: JSON / VARCHAR Volunteer's availability (could be structured as JSON). {"Monday": ["AM"], "Saturday": ["PM"]}
-
date_joined: DATE Date when the volunteer joined. 2024-03-21
-
background_check: BOOLEAN Indicates if a background check has been completed. true / false
- List Volunteers
- GET /api/volunteers
- Retrieves a list of all volunteers, with options for pagination, filtering, and sorting.
- Create a New Volunteer
- POST /api/volunteers
- Creates a new volunteer record.
- POST /api/volunteers
- Get Volunteer Details
- GET /api/volunteers/{volunteerId}
- Retrieves detailed information about a specific volunteer.
- GET /api/volunteers/{volunteerId}
- Update Volunteer Information
- PUT /api/volunteers/{volunteerId}
- Updates an existing volunteer's information.
- PUT /api/volunteers/{volunteerId}
- Delete a Volunteer
- DELETE /api/volunteers/{volunteerId}
- Deletes a specific volunteer's record.
- DELETE /api/volunteers/{volunteerId}