You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Geo50x is an online carto-architectural scavenger hunt originally designed and implemented by Gerard Bul-lalayao for the final project assignment of [CS50x: Introduction to Computer Science](https://cs50.harvard.edu/x/2023/) (HarvardX, 2023).
6
6
7
-
The gameplay is simple. Given a photo of a house somewhere in the world, you are tasked with locating that house on Google Maps. It's that straighforward. Although the search might not be.
7
+
Geo50x is an online carto-architectural scavenger hunt. The gameplay is simple: Given a photo of a house somewhere in the world, you are tasked with locating that house on Google Maps. It's that straighforward, although how you will go about searching might not be.
8
8
9
9
Geo50x is inspired by such childhood games as _[Where's Waldo?](https://en.wikipedia.org/wiki/Where%27s_Wally%3F)_ and _[Where in the World is Carmen Sandiego?](https://en.wikipedia.org/wiki/Carmen_Sandiego)_. And the simple pleasures of looking out through vehicle windows and just gazing at the passing landscapes and cityscapes.
ALL CONTENTS IN THIS REPO ARE FOR EDUCATIONAL PURPOSES ONLY.
16
-
17
-
## Learning Objectives
18
16
19
-
### Requirements
20
-
_[Assignment brief](https://cs50.harvard.edu/x/2023/project/) for CS50x's Final Project (as of September 2023)_
21
-
22
-
_"The climax of this course is its final project. The final project is your opportunity to take your newfound savvy with programming out for a spin and develop your very own piece of software. So long as your project draws upon this course’s lessons, the nature of your project is entirely up to you. You may implement your project in any language(s). You are welcome to utilize infrastructure other than the CS50 Codespace. All that we ask is that you build something of interest to you, that you solve an actual problem, that you impact your community, or that you change the world. Strive to create something that outlives this course."_
23
-
24
-
### Personal Goals
25
-
Apart from what was to be gained from implementing the requirements, this project was used as a vehicle to further learn and/or practice the following:
26
-
27
-
* Working with Google Maps API
17
+
ALL CONTENTS IN THIS REPO ARE FOR EDUCATIONAL PURPOSES ONLY.
28
18
29
19
## Getting Started
30
20
@@ -40,34 +30,41 @@ Apart from what was to be gained from implementing the requirements, this projec
Go into the project directory and run the command:
48
-
```
49
-
$ flask run
39
+
40
+
```bash
41
+
flask run
50
42
```
51
43
52
44
Open the URL after 'Running on'.
53
45
54
46
### Notes on Google Maps
55
47
56
48
For the embedded maps to work, you need to use your own API Key. Before you can create one, you will need to create a Google Cloud project, for which you need a Google Cloud account.
49
+
57
50
*[Set up a Google Cloud account](https://cloud.google.com)
58
51
*[Set up your Google Cloud project](https://developers.google.com/maps/documentation/javascript/cloud-setup)
59
52
*[Using API Keys](https://developers.google.com/maps/documentation/javascript/get-api-key)
60
53
61
54
In your terminal window, execute:
55
+
56
+
```bash
57
+
export MAP_API_KEY=value
62
58
```
63
-
$ export MAP_API_KEY=value
64
-
```
59
+
65
60
where `value` is your API key.
66
61
67
62
Check to confirm if environmental variable is saved by executing
63
+
64
+
```bash
65
+
echo$MAP_API_KEY
68
66
```
69
-
$ echo $MAP_API_KEY
70
-
```
67
+
71
68
### Database
72
69
73
70
You can recreate the database using the queries in `sql.txt`. Then populate the `locs` table with data in `geo50data.csv`. Use of the `geoids` table is not yet implemented (as of v1.0.0).
@@ -76,37 +73,50 @@ You can recreate the database using the queries in `sql.txt`. Then populate the
76
73
77
74
You can use the following credentials to log in to access a Search History with existing data.
The [initial realease](https://github.com/ggeerraarrdd/geo50x/releases/tag/v1.0.0) of Geo50x was submitted as the final project for [CS50x: Introduction to Computer Science](https://cs50.harvard.edu/x/2023/) (HarvardX, 2023).
88
+
89
+
[Project brief](https://cs50.harvard.edu/x/2023/project/) as of September 2023:
90
+
91
+
_The climax of this course is its final project. The final project is your opportunity to take your newfound savvy with programming out for a spin and develop your very own piece of software. So long as your project draws upon this course’s lessons, the nature of your project is entirely up to you. You may implement your project in any language(s). You are welcome to utilize infrastructure other than the CS50 Codespace. All that we ask is that you build something of interest to you, that you solve an actual problem, that you impact your community, or that you change the world. Strive to create something that outlives this course._
92
+
87
93
## Version History
94
+
88
95
* See [https://github.com/ggeerraarrdd/geo50x/releases](https://github.com/ggeerraarrdd/geo50x/releases)
89
96
90
97
## Future Work
98
+
91
99
* Add functionalities to Search History page such as ~~reviewing submitted locations~~_(Update Nov 2, 2023: Done)_ and ~~more easily re-try locations attempted but not yet found~~_(Update Nov 2, 2023: Done)_.
92
100
* Add administration interface for data management.
* The distribution code for CS50's Finance problem served as a template for the app.
100
110
* The documentions for the Google Maps Platform were a daily, often hourly, read.
101
111
* Too many StackOverflow [Q&As](https://meta.stackoverflow.com/questions/267822/if-stack-overflow-doesnt-have-threads-what-the-heck-should-they-be-called) and Medium articles to mention but a couple proved immensely useful in developing two key functions
102
-
*[Offset Latitude and Longitude by some meters accurately - Reverse Haversine](https://gis.stackexchange.com/questions/411859/offset-latitude-and-longitude-by-some-meters-accurately-reverse-haversine)
103
-
*[Algorithm for offsetting a latitude/longitude by some amount of meters](https://gis.stackexchange.com/questions/2951/algorithm-for-offsetting-a-latitude-longitude-by-some-amount-of-meters)
112
+
*[Offset Latitude and Longitude by some meters accurately - Reverse Haversine](https://gis.stackexchange.com/questions/411859/offset-latitude-and-longitude-by-some-meters-accurately-reverse-haversine)
113
+
*[Algorithm for offsetting a latitude/longitude by some amount of meters](https://gis.stackexchange.com/questions/2951/algorithm-for-offsetting-a-latitude-longitude-by-some-amount-of-meters)
0 commit comments