Overview

  • Project idea:
    • Various organized features serve a purpose for those who are interested in events regarding astronomy
      • Ex: features including moon phases, weather integration (in relation to stargazing), cosmic events like meteor showers or eclipses (include location and date/time), and dark sky locations
    • Database
      • Table to register login information
        • Login info consists of Username, Password, Password Verification, Email
        • Login’s role would be primarily to keep personalized settings

Primary Features


Member: Alara I.

  • Personalized formatting: settings
    • Themes (dark/light theme)
      • Frontend; HTML/CSS/JS
        • Local storage
    • Ability to switch between fahrenheit/celsius for weather system(s)
      • Perform calculations between fahrenheit/celsius
        • (°F) - 32 * 5/9
        • (°C) * 9/5 + 32
        • Alternative option: utilize API endpoints that allow unit specification in API requests


Member: Monika R.

  • Calendar containing dates of cosmic events and moon phases
    • API integration
      • Astronomy APIs provide data → make API requests to fetch data possibly w/ JS + Fetch
    • Server-side periodic updates to refresh calendar data (moon phases weekly)
    • Calendar Library usage
      • JS calendar like FullCalendar could help integrating Library aspects


Member: Abdullah K.

  • Dynamic solar system planet (+ sun/moon) visibility hours (in relation to location)
    • API integration
      • NASA’s Solar System Dynamics Group API –> API key –> authentication –> fetch real time planet data
        • Data displayed: illumination (%), hour when rising, hour when setting
        • Time zone compensation (dynamic clock hours displayed in table)
      • Geocoding API –> categorize city entered in settings to broader location (time zone)
        • Recalculate dynamic hours displayed in table on page


Member: Tucker G.

  • Night sky visibility (use location)
    • Usage of Geolocation API w/ JS → retrieve city → provide sky data based on general location (ex: San Diego area)
      • Denying access would result in the user being unable to use this feature
        • Redirection to fail screen or home page (likely following a warning/error message)
    • API usage; geolocation data → customize API requests, retrieve visibility info
  • Weather integration, meteorological data (API)
    • API usage most likely sourced from The National Weather Service’s real time APIs
      • Relevant parameters, primarily the user’s location, will be registered
        • If location info is unavailable, users will be denied access to this feature similarly to the visibility feature
    • Parse JSON (client request → server) response from weather API → extract + display data on user interface
    • Additional ideas could involve displaying real-time space weather data, including solar activity, aurora forecasts, and geomagnetic conditions


Member: Tanuj N.

  • Astronomy-related blogging
    • Backend supported by a CMS (content management system) like WordPress or Ghost and a database supported by CRUD actions and OOP
      • Customize → astronomy
    • CMS API (RESTful or GraphQL) to fetch blog posts
    • User authentication
      • Research led us to possibly using Passport.js in a “Node.js and Express environment”
    • JS, SASS, and possibly HTML used to display posts
    • Image uploading (storing)


Jupter Notebook: Research Notes (Code Fragmenting)

  • Code Fragmenting
    • To break down code into smaller segments
      • Allows for better readability, modulization (dividing/categorizing), demonstrating step-by-step processes/execution, better documentation (in-code comments primarily), and easier troubleshooting
    • Code may be broken up into several different segments to focus on different/individual aspects of a greater task

Ex. below from Python Pandas:

# Code Fragment 1
import pandas as pd

# Code Fragment 2
data = pd.read_csv('example.csv')

# Code Fragment 3
data.head()
  • Code Fragment #1: importing libraries
  • Code Fragment #2: loading data
    • Reading data from CSV file (“example.csv”) into a Pandas DataFrame
  • Code Fragment #3: display data
    • ‘head()’: quick way to inspect structure of contents loaded in data

Methodology

  • Methodology will involve primarily utilizing issues to measure progress
    • Additional: pull requests verify productiveness and value of progress (code being committed)
      • Unsatisfactory work → feedback returned to provider → better end product + collaboration
    • Issues
      • Issue types will consist of To-Do/Backlog, In Progress, Completed Work/Code, + Deployment in repo. to measure progress
      • An Issue will be created at the start of the project to establish a clear foundation of expectations and work to be done
      • Each teammate will be required to file two Issues per week to measure and communicate progress with team
        • Potential adjustments will be made to project to satisfy requirements (To-Do/Backlog, In Progress, Completed Work/Code, + Deployment)

Feature Mind Map