Skip to content

MVP Domain Model + Application Core #2

@SophieDeBenedetto

Description

@SophieDeBenedetto

Problem Statement

From the gist we wrote up last week here https://gist.github.com/SophieDeBenedetto/4127f6fc7112d3277b04f3493e4b7ee0, we decided our MVP (Minimum Viable Product) should look something like this:

Elixir Education Resource Portal

  • Users should be able to log in
  • Users should be able to submit a resource
  • Users should be able to browse resources
  • Users should be able to search resources

The first step towards building this functionality is implementing the core modules and schemas that will represent users and resources, and map to a users database table and resources database table.

Deliverable

  • There is a users database table with some of the attributes we specified here https://gist.github.com/SophieDeBenedetto/4127f6fc7112d3277b04f3493e4b7ee0#gistcomment-3784430
  • There is a User schema implemented in our application core that maps to this database table.
  • There is a resources database table with some of the attributes we specified here https://gist.github.com/SophieDeBenedetto/4127f6fc7112d3277b04f3493e4b7ee0#gistcomment-3784430
  • There is a Resource schema implemented in our application core that maps to this database table
  • There is a relationship between the user that posts a resource and the resource: A user has many resources and a resource belongs to a user. This represents the user that posted the resource. Later we may implement some functionality for users to save or favorite resources, but not yet. So, we will need to implement this "has_many/belongs_to" relationship between these two entities.
  • There are some passing tests for the User and Resource modules that verifies the behavior of the modules.

Implementation Details

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions