Results 1 to 5 of 5

Thread: How Would You Do This?

  1. #1
    Join Date
    Oct 2013

    How Would You Do This?

    (I hope I'm posting this in the right place...)

    Recently, a task fell upon a co-worker and I to come up with a somewhat complex project (complex for me, anyway). I am honestly at a loss as how to proceed with it, so I'm asking experienced developers for their input and advice.

    Here's the project:
    Create a web interface for displaying multiple variables visually, like on a map.
    The variables would come from a database, i.e. MySQL or something similar. The user would select whichever options they would wish to see, such as GPS coordinates plotted out over a timeframe of several days. Once selected, an on-screen map would show these points plotted along with additional details specific to that point, either as a pop-up rollover or in a sidebar (similar to GMaps where they list various options on the side).
    Since this will also include multiple user data, another option would allow users to see things such as crowd or traffic density in the form of a color range map overlayed onto a regular map. Again, the user may choose various options, such as time of day, etc, to pinpoint specific moments in time.

    There are other options, but this is pretty much the jist of it. If you need more information please feel free to ask. However, because of the nature of this project I may not be able to answer questions with specific details. Don't worry, I do not work for the NSA.

    As I mentioned earlier, I'm curious to see how a savvy web developer would go about accomplishing this. Would it involve ASP, PHP or some other server-side code? Would the databases be MySQL or something different? Would any other code be involved to execute these commands, i.e.: javascript, etc?

    Thanks in advance for any of your feedback!

  2. #2
    Join Date
    Aug 2004
    Caveat: I am by no means God's gift to the software architecture world. Anyway...

    Divide and conquer. Break the application down into separate components that you think can be developed individually. Decide which components seem to be the highest risks (complexity, importance, etc.) and start analyzing them, possibly breaking them into sub-components. Look to see if there are already solutions out there you can use (libraries, complete applications, web-base APIs, whatever) to see if you can avoid reinventing each and every wheel.

    Always look to implement loose-coupling between components, so that changing one does not impact others. Let the requirements drive what technology you choose (language, framework, database, etc.), not the other way around. Whichever existing apps/libraries you find that support your needs may help you to decide which underlying technologies to use.

    In any case, I think it's safe to say from your description that you'll likely end up with a combination of server-side code interacting with a database, and quite possibly a thick client leveraging JavaScript libraries and frameworks to handle all the visual stuff and user interaction (which will then interact with the API presented by your server-side code).
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  3. #3
    Join Date
    Oct 2013
    Thanks for the reply. Indeed, divide & conquer is a great idea...surprised I didn't realize that earlier (course, given the scope of this project it all seemed very overwhelming at first).

    What language would you recommend for the server-side? I'm seeing PHP as being the more commonly used language out there, but I'm also seeing PERL and ASP being an option.

    Thanks again for all of your input!

  4. #4
    Join Date
    Aug 2004
    IMO, which server-side language to use is more a matter of personal preference than technical merit. All web servers are fast these days, with plenty of memory and disk space, so language performance is rarely an issue. Again, if you find an existing solution out there for one or more of your critical components that uses JSP and you're comfortable working with that, it might be the way to go. If, on the other hand you find a decent Ruby solution and a decent PHP solution, but you're good with PHP and have never used Ruby, PHP might be the way to go (unless your schedule and budget permits you to use this as an excuse to learn Ruby ).

    If you are planning on hiring any new people to work on this, you might want to find out what their preferences and strengths* are before locking yourself into one solution.
    * If you hired me, I'm sure I'd tell you PHP with a PostgreSQL database is the way to go.
    "Well done....Consciousness to sarcasm in five seconds!" ~ Terry Pratchett, Night Watch

    How to Ask Questions the Smart Way (not affiliated with this site, but well worth reading)

    My Blog
    cwrBlog: simple, no-database PHP blogging framework

  5. #5
    Join Date
    Oct 2013
    Thanks again for your reply!

    I'll definitely have to keep doing some research on this, but your advice has at least pointed me in the right direction, and given me some ideas on how to proceed.

    Again, thanks so much!

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
HTML5 Development Center



X vBulletin 4.2.2 Debug Information

  • Page Generation 0.10265 seconds
  • Memory Usage 2,873KB
  • Queries Executed 13 (?)
More Information
Template Usage (32):
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_global_above_footer
  • (1)ad_global_below_navbar
  • (1)ad_global_header1
  • (1)ad_global_header2
  • (1)ad_navbar_below
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)ad_thread_first_post_content
  • (1)ad_thread_last_post_content
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)headinclude_bottom
  • (5)memberaction_dropdown
  • (1)navbar
  • (4)navbar_link
  • (1)navbar_moderation
  • (1)navbar_noticebit
  • (1)navbar_tabs
  • (2)option
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available (6):
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files (26):
  • ./showthread.php
  • ./global.php
  • ./includes/class_bootstrap.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/functions_navigation.php
  • ./includes/class_friendly_url.php
  • ./includes/class_hook.php
  • ./includes/class_bootstrap_framework.php
  • ./vb/vb.php
  • ./vb/phrase.php
  • ./includes/functions_facebook.php
  • ./includes/functions_calendar.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_notice.php
  • ./packages/vbattach/attach.php
  • ./vb/types.php
  • ./vb/cache.php
  • ./vb/cache/db.php
  • ./vb/cache/observer/db.php
  • ./vb/cache/observer.php 

Hooks Called (70):
  • init_startup
  • friendlyurl_resolve_class
  • init_startup_session_setup_start
  • database_pre_fetch_array
  • database_post_fetch_array
  • init_startup_session_setup_complete
  • global_bootstrap_init_start
  • global_bootstrap_init_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • load_show_variables
  • load_forum_show_variables
  • global_state_check
  • global_bootstrap_complete
  • global_start
  • style_fetch
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • strip_bbcode
  • friendlyurl_clean_fragment
  • friendlyurl_geturl
  • forumjump
  • cache_templates
  • cache_templates_process
  • template_register_var
  • template_render_output
  • fetch_template_start
  • fetch_template_complete
  • parse_templates
  • fetch_musername
  • notices_check_start
  • notices_noticebit
  • process_templates_complete
  • friendlyurl_redirect_canonical
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • memberaction_dropdown
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • build_navigation_data
  • build_navigation_array
  • check_navigation_permission
  • process_navigation_links_start
  • process_navigation_links_complete
  • set_navigation_menu_element
  • build_navigation_menudata
  • build_navigation_listdata
  • build_navigation_list
  • set_navigation_tab_main
  • set_navigation_tab_fallback
  • navigation_tab_complete
  • fb_like_button
  • showthread_complete
  • page_templates