renegadefox / intel-astro Goto Github PK
View Code? Open in Web Editor NEWA simplistic web app to get up to date astronomical weather data.
Home Page: https://astro.intelapps.app
License: MIT License
A simplistic web app to get up to date astronomical weather data.
Home Page: https://astro.intelapps.app
License: MIT License
Create a separate component containing the header, allowing easy changes to be made in the future and to adhere to Atomic Design standards
Tasks:
Create a calendar component with the ability to select date ranges.
Functionality:
Dependencies:
npm i -S moment
Resources:
An autocomplete text field to search cities and get their lat/long for the astro data.
Tasks:
enter
to select results itemDependencies:
City Geo-Location Lookup API
Axios
A page allowing the user to search for a specific city to get astro data from.
Tasks:
Create the initial layout template for all pages to use.
Tasks:
TypeScript type files for all the different dependencies and custom types needed for the web app.
Types:
export interface ApiCity {
name: string; // Full name (City, State/Country)
type: string; // City
c: string; // Country
zmw: string; // ???
tz: string; // Timezone
tzs: string; // Timezone string
l: string; // ???
ll: string; // Latitude and Longitude
lat: string; // Latitude
lon: string; // Longitude
}
export interface City {
fullName: string;
city: string;
state: string;
lat: number;
long: number;
}
// Type definitions for suncalc 1.8
// Project: https://github.com/mourner/suncalc
// Definitions by: horiuchi <https://github.com/horiuchi>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface SunlightTimes {
sunrise: Date;
sunriseEnd: Date;
goldenHourEnd: Date;
solarNoon: Date;
goldenHour: Date;
sunsetStart: Date;
sunset: Date;
dusk: Date;
nauticalDusk: Date;
night: Date;
nadir: Date;
nightEnd: Date;
nauticalDawn: Date;
dawn: Date;
}
interface SunPosition {
altitude: number;
azimuth: number;
}
interface MoonPosition {
altitude: number;
azimuth: number;
distance: number;
parallacticAngle: number;
}
interface MoonIllumination {
fraction: number;
phase: number;
angle: number;
}
interface MoonTimes {
rise: Date;
set: Date;
alwaysUp: boolean;
alwaysDown: boolean;
}
declare module "suncalc" {
function getTimes(date: Date, latitude: number, longitude: number): SunlightTimes;
function getPosition(timeAndDate: Date, latitude: number, longitude: number): SunPosition;
function getMoonPosition(timeAndDate: Date, latitude: number, longitude: number): MoonPosition;
function getMoonIllumination(timeAndDate: Date): MoonIllumination;
function getMoonTimes(date: Date, latitude: number, longitude: number, inUTC?: boolean): MoonTimes;
}
A centralized SASS variables file containing common classes for the entire web app.
Contains:
rgb(19, 90, 229);
rgb(184, 193, 106);
rgb(204, 204, 204);
rgb(153, 153, 153);
rgba(19, 90, 229, 0.75);
rgb(184, 193, 106, 0.75);
rgba(0, 0, 0, 0.45);
rgba(0, 0, 0, 0.3);
linear-gradient(128.6deg, $secondary 0%, $primary 100%);
5px
@mixin elevation($depth) {
@if ($depth == 1) {
box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24)
} @else if ($depth == 2) {
box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23)
} @else if ($depth == 3) {
box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23)
} @else if ($depth == 4) {
box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22)
} @else if ($depth == 5) {
box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22)
}
}
Describe the bug
The state on the
/astro-data
page is not getting abbreviated if it’s a U.S. state.
Steps To Reproduce
/astro-data
pageExpected behavior
If the location is within a U.S. state, the state should be abbreviated.
At work I can’t use my phone everywhere but need to the get the results of the Astro data page onto a computer. The website is not whitelisted so I have to take screen shots to get it to a computer.
A simple share button on the Astro data page to share the results in a table format.
Taking screen shots and emailing them separately.
It should use the native browser Geo Location services.
The user should be able to get their current location using the devices GPS instead of based on their IP address and IPInfo.io
When the user selects current location
as the location, it should display the city name, it should just say current location
in the subheader.
Add advanced animations and transitions for each page. It should feel like a native app.
Pages:
Add the current version of the PWA to the footer so it is displayed on each page.
The user's first view of the web app. Tells them what Intel Astro is all about.
Tasks:
Vuex configuration for the entire web app.
State:
Contains the currently selected city name, state/country, latitude, and longitude
Contains the user selected start date as a
moment.Moment
Object
Contains the user selected end date as a
moment.Moment
Object
Mutations:
Updates the
location
state
Updates either the start date or the end date depending on the parameters it's passed
Actions:
Given an
ApiCity
Object, run the mutationUPDATE_LOCATION
Given a
moment.Moment
Object, run the mutationUPDATE_DATE
with either the start or end date.
The page that displays the astro data to the user based on their previous selections.
Tasks:
City: [Selected City]
Dates: [Selected Start Date] - [Selected End Date]
Describe the bug
When downloading the web app as a PWA, the initial title of the app is
intel-astro
.
Steps To Reproduce
Add to Home Screen
Expected behavior
The default title should be Intel Astro
Create a base button component used throughout the entire web app.
Attributes:
A page that displays a calendar and allows the user to pick a date range in which the astro data should be gathered.
Tasks:
City: [Selected City]
What is the date I should start looking for astro data?
Add the Roboto font face to the entire web app.
Tasks:
@font-face {
font-family: 'Sri-TSCRegular';
src: url('sri-tsc-webfont.eot');
src: url('sri-tsc-webfont.eot?#iefix') format('embedded-opentype'),
url('sri-tsc-webfont.woff') format('woff'),
url('sri-tsc-webfont.ttf') format('truetype'),
url('sri-tsc-webfont.svg#Sri-TSCRegular') format('svg');
font-weight: normal;
font-style: normal;
}
Describe the bug
When on the /city
the text field no longer searches for worldwide cities. It only let’s you use your current location. You can still type into the text field but it doesn’t show any results/suggestions.
Steps To Reproduce
/city
pageExpected behavior
The text field should show suggestions based on the user’s entered search query.
Smartphone (please complete the following information):
Design the layout when a user visits the app on a non-mobile device
Pages:
These pages should be fit into a centered column, similar to Twitter.com
Create sub-header component to be placed into the default layout template
Tasks:
Describe the bug
When a user has the PWA downloaded to their devices, it will not update when a newer version is deployed to the server. It automatically fetches the content from the cache.
Steps To Reproduce
Expected behavior
The PWA should either automatically update or prompt the user that a new version is available and give them the option to load the newer version.
Resources:
When visiting the city page, I have to click/tap on the search field
When visiting the city page, the search field should autofocus to allow easier searching.
Clicking on the search field manually
Create an icon for Intel Astro for each device so the user can download with an app icon.
Register all pages in the Vue Router config file
/src/router/
Routes:
Create a global SASS file with classes used throughout the entire web app.
Contains:
color: $faded
width: 100%;
.text-field {
font-size: 16px
margin: 0px
padding: 10px
outline: 0px
box-sizing: border-box
border-radius: 0px
background: $translucent-white
color: rgb(0, 0, 0)
border: none
width: 100%
}
&::placeholder {
color: $faded
}
.button {
border-radius: 20px
padding: 10px
border: none
box-sizing: border-box
text-transform: uppercase
cursor: pointer
background: $primary
color: rgb(255, 255, 255)
width: 100%
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.