Project Structure for mostly Read application

I am working my way through the Programming Phoenix to help me understand how to use Phoenix for a web application that I want to build. The web application is an almost entirely READ site that will rank performance of collegiate cross country runners. I will have a user context for importing data (this will be only for myself, there won’t actually be a way to create an account in the public) and then I will have several contexts for all of the data.

The contexts are (so far): runner, race, team, and race_instance. Would these mean that I create a file called runner.ex and store it in lib/rankings (project name rankings)? Then do that for each of the other three contexts? Each of these files would have the schema, and functions necessary for displaying the information.

In the accounts context, I would have the form for creating the data and that file would be much larger and deal with the actual data processing.

Is there an easier way of going about this or am I on the right path?

1 Like

I would probably put runner, team and rankings in one context together, race and (I’d call it race_log) in another.

As for your last question, use the generators.

mix phx.gen.context Runners Runner runners name:string whatever:string

2 Likes