├── .gitignore ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── bg_index.png │ │ │ │ ├── ic_list.png │ │ │ │ ├── ic_list2.png │ │ │ │ ├── ic_map.png │ │ │ │ ├── ic_tell.png │ │ │ │ ├── ic_camera.png │ │ │ │ ├── ic_keep_on.png │ │ │ │ ├── ic_person.png │ │ │ │ ├── ic_profile.png │ │ │ │ ├── ic_keep_off.png │ │ │ │ ├── ic_register.png │ │ │ │ ├── bg_bestfood_drawer.png │ │ │ │ ├── button_circle.xml │ │ │ │ ├── bg_basic_black_transparent.xml │ │ │ │ ├── bg_round.xml │ │ │ │ ├── bg_basic_gray.xml │ │ │ │ ├── bg_round_gray.xml │ │ │ │ ├── button_round_red.xml │ │ │ │ ├── button_round.xml │ │ │ │ └── button_round_green.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ │ ├── arrays.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── styles.xml │ │ │ │ ├── dimens.xml │ │ │ │ └── strings.xml │ │ │ ├── menu │ │ │ │ ├── menu_submit.xml │ │ │ │ ├── menu_close.xml │ │ │ │ └── activity_main_drawer.xml │ │ │ ├── values-v21 │ │ │ │ └── styles.xml │ │ │ └── layout │ │ │ │ ├── content_main.xml │ │ │ │ ├── app_bar_main.xml │ │ │ │ ├── activity_bestfood_register.xml │ │ │ │ ├── loading_layout.xml │ │ │ │ ├── toolbar.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── fragment_bestfood_keep.xml │ │ │ │ ├── activity_permission.xml │ │ │ │ ├── fragment_bestfood_map.xml │ │ │ │ ├── fragment_bestfood_register_location.xml │ │ │ │ ├── nav_header_main.xml │ │ │ │ ├── activity_profile_icon.xml │ │ │ │ ├── activity_index.xml │ │ │ │ ├── row_bestfood_keep.xml │ │ │ │ ├── row_bestfood_list.xml │ │ │ │ ├── fragment_bestfood_list.xml │ │ │ │ ├── row_bestfood_map.xml │ │ │ │ ├── fragment_bestfood_register_image.xml │ │ │ │ ├── fragment_bestfood_register_input.xml │ │ │ │ ├── activity_profile.xml │ │ │ │ └── activity_bestfood_info.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── mobitant │ │ │ │ └── bestfood │ │ │ │ ├── Constant.java │ │ │ │ ├── item │ │ │ │ ├── GeoItem.java │ │ │ │ ├── KeepItem.java │ │ │ │ ├── ImageItem.java │ │ │ │ ├── MemberInfoItem.java │ │ │ │ └── FoodInfoItem.java │ │ │ │ ├── lib │ │ │ │ ├── MyToast.java │ │ │ │ ├── MyLog.java │ │ │ │ ├── StringLib.java │ │ │ │ ├── FileLib.java │ │ │ │ ├── BitmapLib.java │ │ │ │ ├── KeepLib.java │ │ │ │ ├── DialogLib.java │ │ │ │ ├── GoLib.java │ │ │ │ ├── GeoLib.java │ │ │ │ ├── EtcLib.java │ │ │ │ └── RemoteLib.java │ │ │ │ ├── MyApp.java │ │ │ │ ├── remote │ │ │ │ ├── ServiceGenerator.java │ │ │ │ └── RemoteService.java │ │ │ │ ├── custom │ │ │ │ ├── WorkaroundMapFragment.java │ │ │ │ └── EndlessRecyclerViewScrollListener.java │ │ │ │ ├── BestFoodRegisterActivity.java │ │ │ │ ├── adapter │ │ │ │ ├── MapListAdapter.java │ │ │ │ ├── KeepListAdapter.java │ │ │ │ └── InfoListAdapter.java │ │ │ │ ├── PermissionActivity.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── BestFoodKeepFragment.java │ │ │ │ ├── IndexActivity.java │ │ │ │ ├── BestFoodRegisterInputFragment.java │ │ │ │ └── ProfileIconActivity.java │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── mobitant │ │ │ └── bestfood │ │ │ └── ExampleUnitTest.java │ └── androidTest │ │ └── java │ │ └── com │ │ └── mobitant │ │ └── bestfood │ │ └── ApplicationTest.java ├── proguard-rules.pro └── build.gradle ├── web ├── .gitignore ├── public │ ├── img │ │ ├── 296.png │ │ ├── 439.png │ │ ├── 444.png │ │ └── 7_1457590813472.png │ └── css │ │ └── style.css ├── views │ ├── error.ejs │ └── index.ejs ├── db.js ├── package.json ├── app.js ├── bin │ └── www └── routes │ ├── keep.js │ ├── member.js │ └── food.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.bak 3 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /web/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ -------------------------------------------------------------------------------- /web/public/img/296.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/web/public/img/296.png -------------------------------------------------------------------------------- /web/public/img/439.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/web/public/img/439.png -------------------------------------------------------------------------------- /web/public/img/444.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/web/public/img/444.png -------------------------------------------------------------------------------- /web/views/error.ejs: -------------------------------------------------------------------------------- 1 |

<%= message %>

2 |

<%= error.status %>

3 |
<%= error.stack %>
4 | -------------------------------------------------------------------------------- /web/public/img/7_1457590813472.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/web/public/img/7_1457590813472.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/bg_index.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_list.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_list2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_list2.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_map.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_tell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_tell.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_camera.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keep_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_keep_on.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_person.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_profile.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_keep_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_keep_off.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_register.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/ic_register.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_bestfood_drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/drawable/bg_bestfood_drawer.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kairo96/and_node/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /web/public/css/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding: 50px; 3 | font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; 4 | } 5 | 6 | a { 7 | color: #00B7FF; 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 카메라 5 | 앨범 6 | 7 | -------------------------------------------------------------------------------- /web/views/index.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <%= title %> 5 | 6 | 7 | 8 |

<%= title %>

9 |

Welcome to <%= title %>

10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_submit.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_close.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/java/com/mobitant/bestfood/Constant.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood; 2 | 3 | public interface Constant { 4 | int MAX_LENGTH_DESCRIPTION = 50; 5 | 6 | int MAP_MAX_ZOOM_LEVEL = 10; 7 | int MAP_ZOOM_LEVEL_DETAIL = 13; 8 | 9 | String ORDER_TYPE_METER = ""; 10 | String ORDER_TYPE_FAVORITE = "keep_cnt"; 11 | String ORDER_TYPE_RECENT = "reg_date"; 12 | } -------------------------------------------------------------------------------- /web/db.js: -------------------------------------------------------------------------------- 1 | var mysql = require('mysql'); 2 | 3 | var pool; 4 | 5 | exports.connect = function(done) { 6 | pool = mysql.createPool({ 7 | connectionLimit: 100, 8 | host : 'localhost', 9 | user : 'root', 10 | password : 'bestfood', 11 | database : 'bestfood' 12 | }); 13 | } 14 | 15 | exports.get = function() { 16 | return pool; 17 | } -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/test/java/com/mobitant/bestfood/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * To work on unit tests, switch the Test Artifact in the Build Variants view. 9 | */ 10 | public class ExampleUnitTest { 11 | @Test 12 | public void addition_isCorrect() throws Exception { 13 | assertEquals(4, 2 + 2); 14 | } 15 | } -------------------------------------------------------------------------------- /app/src/androidTest/java/com/mobitant/bestfood/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "web", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "start": "node ./bin/www" 7 | }, 8 | "dependencies": { 9 | "body-parser": "~1.17.1", 10 | "cookie-parser": "~1.4.3", 11 | "debug": "~2.6.3", 12 | "ejs": "~2.5.6", 13 | "express": "~4.15.2", 14 | "formidable": "^1.1.1", 15 | "morgan": "~1.8.1", 16 | "mysql": "^2.13.0", 17 | "serve-favicon": "~2.4.2" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/button_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_basic_black_transparent.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_basic_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_round_gray.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/content_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | #000000 8 | #aa0000 9 | #2F9D27 10 | #880000 11 | #FFF 12 | #888888 13 | 14 | #88EEEEEE 15 | #FFFFFF 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/mobitant/bestfood/item/GeoItem.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood.item; 2 | 3 | import com.google.android.gms.maps.model.LatLng; 4 | 5 | /** 6 | * 위치 정보를 저장하는 객체 7 | */ 8 | public class GeoItem { 9 | public static double knownLatitude; 10 | public static double knownLongitude; 11 | 12 | /** 13 | * 사용자의 위도, 경도 객체를 반환한다. 만약 사용자의 위치를 알 수 없다면 서울 위치를 반환한다. 14 | * @return LatLng 위도,경도 객체 15 | */ 16 | public static LatLng getKnownLocation() { 17 | if (knownLatitude == 0 || knownLongitude == 0) { 18 | return new LatLng(37.566229, 126.977689); 19 | } else { 20 | return new LatLng(knownLatitude, knownLongitude); 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_bestfood_register.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 17 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/loading_layout.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | -------------------------------------------------------------------------------- /app/src/main/java/com/mobitant/bestfood/item/KeepItem.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood.item; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * 즐겨찾기 정보를 저장하는 객체 7 | */ 8 | public class KeepItem extends FoodInfoItem{ 9 | @SerializedName("keep_seq") public String keepSeq; 10 | @SerializedName("keep_member_seq") public String keepMemberSeq; 11 | @SerializedName("keep_date") public String keepDate; 12 | 13 | @Override 14 | public String toString() { 15 | return "KeepItem{" + 16 | "keepSeq='" + keepSeq + '\'' + 17 | ", keepMemberSeq='" + keepMemberSeq + '\'' + 18 | ", keepDate='" + keepDate + '\'' + 19 | '}'; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in D:\Dropbox\MOBITANT_PRJ\Android\sdk1/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/toolbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/java/com/mobitant/bestfood/lib/MyToast.java: -------------------------------------------------------------------------------- 1 | package com.mobitant.bestfood.lib; 2 | 3 | import android.content.Context; 4 | import android.widget.Toast; 5 | 6 | /** 7 | * 토스트 편의 클래스 8 | * 토스트를 좀 더 편하게 사용하기 위한 메소드로 구성 9 | */ 10 | public class MyToast { 11 | public static void s(Context context, int id) { 12 | Toast.makeText(context, id, Toast.LENGTH_SHORT).show(); 13 | } 14 | 15 | public static void s(Context context, String text) { 16 | Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); 17 | } 18 | 19 | public static void l(Context context, int id) { 20 | Toast.makeText(context, id, Toast.LENGTH_LONG).show(); 21 | } 22 | 23 | public static void l(Context context, String text) { 24 | Toast.makeText(context, text, Toast.LENGTH_LONG).show(); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |