hmkurth / CommunityFoodResources

locate community food resources
1 stars 0 forks source link

Ready for checkpoint 1 #1

Open hmkurth opened 3 years ago

hmkurth commented 3 years ago

@pawaitemadisoncollege - checkpoint 1 is ready for review Wow, I can't believe I did it. I'm excited about the progress and the project. I'm also feeling a little like I am in over my head. One thing I am concerned about(among many which are documented in the journal) is my ERD, and if I have that right, and if it meets the project specs for database relationships.
I still have no idea how i'm going to combine a locator API or google maps, or how that all fits in... I guess I will only be using sql to search my populated data base for locations by zipcodes, so maybe I'm overcomplicating it.... I really have no idea how much time this all takes, so i made a very vague educated guess as far as the project plan goes, I'm sure I'm missing a bunch of stuff....

pawaitemadisoncollege commented 3 years ago

WOW!!!! I am impressed @hmkurth! Look how much you've done already! Reviewing your repository so far was liking drinking from that proverbial firehose! It's clear you put a lot of time and thought into this work.

I think you've done a good job paring down to MVP. I do want you to know that it is ok if you do not hit every single thing on the MVP list (that sometimes stresses students out as we near the end of the semester). Hitting much of the MVP and the project requirements like full crud (create, read, update, date), authentication/authorization, etc, is perfectly ok!

My thoughts, observations, and questions:

Journal responses:

  1. I'm very sorry to hear about your kitty :(
  2. SPA versus JSPs/Servlets. SPA is a-ok, that may mean, though, that you will need create services for the various aspects of your application. Example: the current search we did with jsps/servlets went something like jsp form => servlet => user data class, which created and returned a list of Users => servlet => JSP. With a SPA, a service would likely replace the servlet/userdata/user/servlet piece. This is actually the exercise for Week 9, so you will definitely be learning this, however that might be a bit late to implement it fully? Consider learning this sooner than the scheduled? Know that many of the pieces that we are building in the next few weeks will still be the same if you "servicify" - still need DAO, entities. What would go away are the servlets, which are replaced with services.
  3. https://www.zipcodeapi.com can be a good one for locating "things" in a radius. If handling location data is not in the MVP, another api that might add value to your project is java mail - which is a java library that allows emailing. Perhaps there's a need for functionality to email the admin if there is bad info somewhere?

What else? Does this help??

hmkurth commented 3 years ago

Thankyou so much for the feedback!!

_ "Representing resources types in the DB. What do you think about a simple table with the type on it? In the fat bike trail reports example, see the trail type, difficulty, or grooming type for examples. (Disclaimer: I am not a DB design pro, so if I'm guiding you differently from what you learned in class, let me know!)"_ Yes, I saw that in your erd, and i do have a table for that, at first I wasn't sure how it fit in. And there should not be many to many relationships anyway because you need to make a join table to resolve them, so I don't know why I was thinking that... After receiving alot of responses and suggestions from social media, I have found more data and functionality that I want to/should include. Obviously much of that will need to be considered for future versions, but I'm wondering if it's a better idea to include more info in the db and design than I need /will use right now, or to keep it simple and only include data that I plan to use in the first release. I always have pie in the sky dreams, but my actual skill tends to dampen those spirits late in the game, when it takes me 3 days to do something that I thought would take me 1 ;) So for the location stuff...I think that at the very least I should have a link from the resource to google maps opening up. Which I'm not even sure is an API call, but it must be because you are inputting a location...I'm still trying to figure out what all constitutes an "API"...any website that provides information with an explicit interface to java?? I love the javamail suggestion, I think I would like to use that for the first release to allow reporting and adding new resources by a mailto method instead of a form to input.
I think I better stick to the non-SPA form that we have been using, and leave SPAs for JS Frameworks. As cool as it would be to try to integrate some of the new stuff I'm learning there, I don't want to muddy the waters too much.

pawaitemadisoncollege commented 3 years ago

I'm wondering if it's a better idea to include more info in the db and design than I need /will use right now, or to keep it simple and only include data that I plan to use in the first release

I think it's ok, and good!, to get some design ideas down when you have them in mind, but I don't think you necessarily need to build that out right now. My recommendation: document it so it's not lost, but build the db for what you need in V1.

So for the location stuff...I think that at the very least I should have a link from the resource to google maps opening up. Which I'm not even sure is an API call, but it must be because you are inputting a location...I'm still trying to figure out what all constitutes an "API"...any website that provides information with an explicit interface to java??

  1. For the ent java indie project requirements, you need to consume a service or api in java code. Javamail will cover that requirement, so....
  2. A link to google maps may or may not be an api call.
  3. Option 1. This link will open up a browser showing Madison College in google maps. This is simply a link that you could store in the db, and put on a page as a link that user could click on. I see this as simply data stored in the db and displayed to the user. Not a true api call in my mind.
  4. Option 2. You could use the google maps api to display locations on a map within your web site. Since this is very much a visual thing, using the api with javascript makes sense (remember javamail meets your api w/ java requirement). Here's one short tutorial about how to do this: https://developers.google.com/maps/documentation/javascript/adding-a-google-map#maps_add_map-typescript.
pawaitemadisoncollege commented 3 years ago

one more thing.... I was adding in some mapping capability to a side project and found this helpful in deciding what to use: https://uptech.team/blog/mapbox-vs-google-maps-vs-openstreetmap