Skip to main content

Research Entities

Entities for research projects, citizen science, and data contributions.

ResearchProject

Purpose: Research projects (citizen science) for data collection.

Key Fields:

  • Id (int): Unique identifier
  • ProjectName: Project name
  • Description: Project description
  • ProjectCode: Official project code
  • OrganizationName: Organization (DNR, NOAA, University, etc.)
  • OrganizationWebsite: Organization website
  • ContactEmail, ContactPhone: Contact information
  • ProjectType: CitizenScience, Academic, Government
  • ResearchFocus: Research focus area
  • DataRequirements: What data is needed
  • StateId: State-specific project
  • GeographicScope: Statewide, Regional, National
  • RequiresRegistration: Whether registration required
  • IsAcceptingParticipants: Whether accepting participants
  • ParticipationInstructions: Participation instructions
  • IsActive: Whether project is active
  • StartDate, EndDate: Project dates
  • ParticipantCount: Number of participants

Relationships:

  • Many-to-one: State
  • One-to-many: ProjectParticipation, DataContribution

Usage Patterns:

// Get active research projects
var projects = context.ResearchProjects
.Where(rp => rp.IsActive && rp.IsAcceptingParticipants)
.Include(rp => rp.State)
.ToList();

// Get user's project participations
var participations = context.ProjectParticipations
.Where(pp => pp.UserId == userId)
.Include(pp => pp.ResearchProject)
.ToList();

ProjectParticipation

Purpose: User participation in research projects.

Key Fields:

  • Id (int): Unique identifier
  • ResearchProjectId: Associated project
  • UserId: Participating user
  • RegisteredAt: Registration date
  • Status: Active, Completed, Inactive
  • DataContributionCount: Number of data contributions

Relationships:

  • Many-to-one: ResearchProject, User
  • One-to-many: DataContribution

DataContribution

Purpose: Data contributions to research projects.

Key Fields:

  • Id (int): Unique identifier
  • ResearchProjectId: Associated project
  • ProjectParticipationId: User participation
  • FishingLogEntryId: Associated catch log entry
  • ContributedAt: Contribution date
  • DataFields: Contributed data fields (JSON)
  • IsVerified: Whether data is verified

Relationships:

  • Many-to-one: ResearchProject, ProjectParticipation, FishingLogEntry