Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meteor Version #48

Open
deskinsjt opened this issue May 12, 2017 · 2 comments
Open

Meteor Version #48

deskinsjt opened this issue May 12, 2017 · 2 comments

Comments

@deskinsjt
Copy link
Member

To make things easier to deploy to multiple universities we are looking to changing over to Meteor. I have spent a little time thinking about how we want this to look and before I start writing I think we should have a more complete outline for what is going to happen.

There are two reasonable models I see for the new version of the website:

  1. Single central server for all institutions
  2. single app that is deployed on multiple servers (one per institution)

There are pros and cons to both:

Option 1

  • Pro: Will allow more conversation between Universities and such
  • Con: We will need to provide a central server (and maintain it or pay for it)
  • Pro: More impressive from a resume standpoint

Option 2

  • Pro: Simpler database and site structure
  • Con: less control of usage
  • Pro: easier to develop

At the moment I am more or less ambivalent to which path we take. Perhaps leaning towards option 2 as the Meteor framework feels unnatural to me at the moment. Hopefully this will change once I get into it.

In any case here is a sketch of the database structure (for Option 1), I think it lays out nicely the core functionality and if we decide to go option 2 should be easy to pair down.

  • databases
    • papers
      • paperUID //_id
      • arxivId
      • url //to arxiv page
      • title
      • authors
      • abstract
      • [arxivs,] //maybe boolean for all arxivs?[{arxiv:bool},]
      • importDate
      • updateDate
      • COMMENTS//3rd party?
      • [{userUID,votes,date,institutionUID},]
    • institution
      • institutionUID //_id
      • graphic? //Graphic for each institution?
      • longName //char type and length limits?
      • shortName //char type and length limits?
      • users: [{userUID,email},]
      • admins: [{userUID,email},] //globalAdmin to be hidden from list and protected from deletion
      • meetings: [{startTime,endTime,collectVotes},] //how should we deal with repeats? make them pick each date or pick a selection?
    • users
      • userUID //_id
      • LongName
      • nickname
      • email
      • [institutionUID,]
      • globalAdmin

Here is what I am thinking to start for development, mainly so that something working is going from the start.

  • Start
    1. Import (single) arxiv (xml2js)
    2. Display papers from the feed
  • Interact 1
    3. Add vote to paper data
    4. Add vote functionality
  • Simple publishing/routing
    5. Import multiple arxivs
    6. route between them (react router)

Thoughts on anything are welcome. I may have an initial commit sometime over the weekend.

@deskinsjt
Copy link
Member Author

Also I think the database structure will address issues: #47 and #24. Using meteor should address #7. Further I think for the user control we may use googles OAuth (#38) and may address #46. It shouldn't be hard to alter the database structure for #31 either.

@jbmertens
Copy link
Member

jbmertens commented May 13, 2017

Like the thoughts. Should this be its own repo?

I'm also in favor of Option 1, as long as page load times are reasonable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants