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
- Table to register login information
- Various organized features serve a purpose for those who are interested in events regarding astronomy
Primary Features
Member: Alara I.
- Personalized formatting: settings
- Themes (dark/light theme)
- Frontend; HTML/CSS/JS
- Local storage
- Frontend; HTML/CSS/JS
- 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
- Perform calculations between fahrenheit/celsius
- Themes (dark/light theme)
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
- API integration
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
- NASA’s Solar System Dynamics Group API –> API key –> authentication –> fetch real time planet data
- API integration
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)
- Denying access would result in the user being unable to use this feature
- API usage; geolocation data → customize API requests, retrieve visibility info
- Usage of Geolocation API w/ JS → retrieve city → provide sky data based on general location (ex: San Diego area)
- 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
- Relevant parameters, primarily the user’s location, will be registered
- 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
- API usage most likely sourced from The National Weather Service’s real time APIs
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)
- Backend supported by a CMS (content management system) like WordPress or Ghost and a database supported by CRUD actions and OOP
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
- To break down code into smaller segments
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)
- Additional: pull requests verify productiveness and value of progress (code being committed)