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

Switch to club database #31

Closed
mirdaki opened this issue Sep 5, 2018 · 5 comments
Closed

Switch to club database #31

mirdaki opened this issue Sep 5, 2018 · 5 comments
Assignees
Milestone

Comments

@mirdaki
Copy link
Member

mirdaki commented Sep 5, 2018

Look into creating a database to store events, resources, project info, meeting attendance, and more (please add ideas below)! The idea is that we will have a common database where all projects (bots, website, future things) can access and store data relevant to the club. The website would send REST request (using JavaScript) to get the data and populate it into the page.

Things to consider

  • Authentication
    • With access control (.e.g. only allow read access to events table for the website)
  • Accessible via different tech
  • Open source (of course)
  • Familiar tech
  • Other?
@mirdaki
Copy link
Member Author

mirdaki commented Sep 5, 2018

This means issues #23, #11, and #5 are on hold

@mirdaki
Copy link
Member Author

mirdaki commented Sep 5, 2018

This other club's solution is something we should consider too

@mirdaki
Copy link
Member Author

mirdaki commented Sep 7, 2018

OK so some Rust information that we might want to take a look at.

Rest API

  • Rocket
    • I really like the API here and it has great documentation, though it currently uses Rust nightly (not a big deal, but something to note) and doesn't yet have async calls (though it is faster than some JavaScript solutions)
    • A relevant blog post
  • Gotham
    • This has a more verbose API with only a little in the way of documentation, but does seem to have async calls and uses stable Rust.

I'm personally leaning towards Rocket for the ease of development, but I'd like to get other input.

Other Rust things

  • Hyper
    • Used in both Rocket and Gotham. It provides support for building web servers and clients that talk to them. Could be cool if we ever want to go lower level.
  • Tokio
    • Speaking of lower level, this is a networking library (that I believe Hyper uses/is trying to use).
  • Diesel
    • An ORM and query builder for SQL databases. It should be easy to get going using this with any standard database.

@hjarrell
Copy link
Member

hjarrell commented Sep 7, 2018

I think that the database interface should just be a simple REST API. However, I also think that it should work in 2 ways. If the github resources or the google calendar are changed manually it should update the DB and if the website changes the resources or the google calendar they should update.

@mirdaki
Copy link
Member Author

mirdaki commented Sep 15, 2018

I've created a new project repo for this here. Future discussion will be held there

@mirdaki mirdaki closed this as completed Sep 15, 2018
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