<!--
Baby Names Generator
Author: Jayesh Chandrapal
-->
<!DOCTYPE html>
<html ng-app="babyNamesApp">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Exchange Rates</title>
  <link data-require="bootstrap-css@*" data-semver="3.3.1" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" />
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script src="https://code.angularjs.org/1.4.0-beta.1/angular.js" data-semver="1.4.0-beta.1" data-require="angular.js@*"></script>
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-controller="mainCtrl">

  <div class="container">
    <div class="row">
      <div class="col-md-12 col-sm-12 col-xs-12">

        <div class="page-header">
          <h3 class="text-info">{{ appName }}</h3>
        </div>

        <form class="form-inline">
          <div class="form-group">
            <button ng-click="get_new_name()" title="Suggest other name" class="btn btn-info btn-lg">{{ btnRefreshText }}</button>
          </div>

          <div class="form-group">
            <div class="radio">
              <label>
                <input type="radio" ng-model="gender" value="male" checked>
                <span title="Male">Blue</span>
              </label>
            </div>
            <div class="radio">
              <label>
                <input type="radio" ng-model="gender" value="female">
                <span title="Female">Pink</span>
              </label>
            </div>
          </div>
            
        </form>

        <hr>
        <div class="jumbotron">
          <h1>{{ babyname }}</h1>
        </div>
        
      </div>
    </div>
  </div>
</body>

</html>
var app = angular.module('babyNamesApp', []);

app.controller('mainCtrl', function($scope, webService) {
  $scope.appName = "Baby Names Generator";
  $scope.btnRefreshText = "Get New Name";
  $scope.gender = 'male';
  $scope.babynames = {};
  $scope.babyname = '';
  
  $scope.init = function() {
    $scope.btnRefreshText = "Loading";
    
    webService.loadAllNames()
      .then(function(response) {
        $scope.btnRefreshText = "Get New Name";
      }, function(error) {
        $scope.btnRefreshText = "Get New Name";
        console.log(error);
      });
  }
  
  $scope.get_new_name = function() {
    $scope.babyname = webService.getNewName($scope.gender);
  }
  
  $scope.init();
});

// Web service
app.factory('webService', function ($http, $q) {
  var babynames = {};
  
  // Return Public API
  return( {
    loadAllNames : loadAllNames,
    getNewName   : getNewName
  });

  
  // Public methods
  function loadAllNames() {
    var deferred = $q.defer();

    $http.get('allnames.json')
      .success(function(data) {
        babynames.boys = data.boys;
        babynames.girls = data.girls;
        
        deferred.resolve(data);
      })
      .error(function(error, code) {
        deferred.reject(msg);
      });
    
    return deferred.promise;
  }
  
  function getNewName(gender) {
    var boys_index = parseInt(Math.random() * babynames.boys.length);
    var girls_index = parseInt(Math.random() * babynames.girls.length);
    return (gender === 'male') ? babynames.boys[boys_index] : babynames.girls[girls_index];
  }

});
/* Styles go here */

# Baby Names Generator

Frontend: Bootstrap, AngularJS

**Author**: Jayesh Chandrapal

Copyright © 2016 [www.jayeshcp.com](www.jayeshcp.com) All rights Reserved.

**Email**: <me@jayeshcp.com>
{
  "boys": 
  [
    "Jacob",
    "Michael",
    "Joshua",
    "Matthew",
    "Daniel",
    "Christopher",
    "Andrew",
    "Ethan",
    "Joseph",
    "William",
    "Anthony",
    "David",
    "Alexander",
    "Nicholas",
    "Ryan",
    "Tyler",
    "James",
    "John",
    "Jonathan",
    "Noah",
    "Brandon",
    "Christian",
    "Dylan",
    "Samuel",
    "Benjamin",
    "Nathan",
    "Zachary",
    "Logan",
    "Justin",
    "Gabriel",
    "Jose",
    "Austin",
    "Kevin",
    "Elijah",
    "Caleb",
    "Robert",
    "Thomas",
    "Jordan",
    "Cameron",
    "Jack",
    "Hunter",
    "Jackson",
    "Evan",
    "Isaac",
    "Luke",
    "Mason",
    "Jason",
    "Jayden",
    "Gavin",
    "Aaron",
    "Connor",
    "Aiden",
    "Aidan",
    "Kyle",
    "Juan",
    "Charles",
    "Luis",
    "Adam",
    "Lucas",
    "Brian",
    "Eric",
    "Adrian",
    "Nathaniel",
    "Sean",
    "Alex",
    "Carlos",
    "Ian",
    "Bryan",
    "Owen",
    "Jesus",
    "Landon",
    "Julian",
    "Chase",
    "Cole",
    "Diego",
    "Jeremiah",
    "Steven",
    "Sebastian",
    "Xavier",
    "Timothy",
    "Carter",
    "Wyatt",
    "Brayden",
    "Blake",
    "Hayden",
    "Devin",
    "Cody",
    "Richard",
    "Seth",
    "Dominic",
    "Jaden",
    "Antonio",
    "Miguel",
    "Liam",
    "Patrick",
    "Carson",
    "Jesse",
    "Tristan",
    "Alejandro",
    "Henry",
    "Victor",
    "Trevor",
    "Bryce",
    "Jake",
    "Riley",
    "Colin",
    "Jared",
    "Jeremy",
    "Mark",
    "Caden",
    "Garrett",
    "Parker",
    "Marcus",
    "Vincent",
    "Kaleb",
    "Kaden",
    "Brady",
    "Colton",
    "Kenneth",
    "Joel",
    "Oscar",
    "Josiah",
    "Jorge",
    "Cooper",
    "Ashton",
    "Tanner",
    "Eduardo",
    "Paul",
    "Edward",
    "Ivan",
    "Preston",
    "Maxwell",
    "Alan",
    "Levi",
    "Stephen",
    "Grant",
    "Nicolas",
    "Omar",
    "Dakota",
    "Alexis",
    "George",
    "Collin",
    "Eli",
    "Spencer",
    "Gage",
    "Max",
    "Cristian",
    "Ricardo",
    "Derek",
    "Micah",
    "Brody",
    "Francisco",
    "Nolan",
    "Ayden",
    "Dalton",
    "Shane",
    "Peter",
    "Damian",
    "Jeffrey",
    "Brendan",
    "Travis",
    "Fernando",
    "Peyton",
    "Conner",
    "Andres",
    "Javier",
    "Giovanni",
    "Shawn",
    "Braden",
    "Jonah",
    "Bradley",
    "Cesar",
    "Emmanuel",
    "Manuel",
    "Edgar",
    "Mario",
    "Erik",
    "Edwin",
    "Johnathan",
    "Devon",
    "Erick",
    "Wesley",
    "Oliver",
    "Trenton",
    "Hector",
    "Malachi",
    "Jalen",
    "Raymond",
    "Gregory",
    "Abraham",
    "Elias",
    "Leonardo",
    "Sergio",
    "Donovan",
    "Colby",
    "Marco",
    "Bryson",
    "Martin"
  ], 
"girls": 
  [
    "Emily",
    "Madison",
    "Emma",
    "Olivia",
    "Hannah",
    "Abigail",
    "Isabella",
    "Samantha",
    "Elizabeth",
    "Ashley",
    "Alexis",
    "Sarah",
    "Sophia",
    "Alyssa",
    "Grace",
    "Ava",
    "Taylor",
    "Brianna",
    "Lauren",
    "Chloe",
    "Natalie",
    "Kayla",
    "Jessica",
    "Anna",
    "Victoria",
    "Mia",
    "Hailey",
    "Sydney",
    "Jasmine",
    "Julia",
    "Morgan",
    "Destiny",
    "Rachel",
    "Ella",
    "Kaitlyn",
    "Megan",
    "Katherine",
    "Savannah",
    "Jennifer",
    "Alexandra",
    "Allison",
    "Haley",
    "Maria",
    "Kaylee",
    "Lily",
    "Makayla",
    "Brooke",
    "Nicole",
    "Mackenzie",
    "Addison",
    "Stephanie",
    "Lillian",
    "Andrea",
    "Zoe",
    "Faith",
    "Kimberly",
    "Madeline",
    "Alexa",
    "Katelyn",
    "Gabriella",
    "Gabrielle",
    "Trinity",
    "Amanda",
    "Kylie",
    "Mary",
    "Paige",
    "Riley",
    "Leah",
    "Jenna",
    "Sara",
    "Rebecca",
    "Michelle",
    "Sofia",
    "Vanessa",
    "Jordan",
    "Angelina",
    "Caroline",
    "Avery",
    "Audrey",
    "Evelyn",
    "Maya",
    "Claire",
    "Autumn",
    "Jocelyn",
    "Ariana",
    "Nevaeh",
    "Arianna",
    "Jada",
    "Bailey",
    "Brooklyn",
    "Aaliyah",
    "Amber",
    "Isabel",
    "Mariah",
    "Danielle",
    "Melanie",
    "Sierra",
    "Erin",
    "Molly",
    "Amelia",
    "Isabelle",
    "Madelyn",
    "Melissa",
    "Jacqueline",
    "Marissa",
    "Shelby",
    "Angela",
    "Leslie",
    "Katie",
    "Jade",
    "Catherine",
    "Diana",
    "Aubrey",
    "Mya",
    "Amy",
    "Briana",
    "Sophie",
    "Gabriela",
    "Breanna",
    "Gianna",
    "Kennedy",
    "Gracie",
    "Peyton",
    "Adriana",
    "Christina",
    "Courtney",
    "Daniela",
    "Lydia",
    "Kathryn",
    "Valeria",
    "Layla",
    "Alexandria",
    "Natalia",
    "Angel",
    "Laura",
    "Charlotte",
    "Margaret",
    "Cheyenne",
    "Mikayla",
    "Miranda",
    "Naomi",
    "Kelsey",
    "Payton",
    "Ana",
    "Alicia",
    "Jillian",
    "Daisy",
    "Mckenzie",
    "Ashlyn",
    "Sabrina",
    "Caitlin",
    "Summer",
    "Ruby",
    "Rylee",
    "Valerie",
    "Skylar",
    "Lindsey",
    "Kelly",
    "Genesis",
    "Zoey",
    "Eva",
    "Sadie",
    "Alexia",
    "Cassidy",
    "Kylee",
    "Kendall",
    "Jordyn",
    "Kate",
    "Jayla",
    "Karen",
    "Tiffany",
    "Cassandra",
    "Juliana",
    "Reagan",
    "Caitlyn",
    "Giselle",
    "Serenity",
    "Alondra",
    "Lucy",
    "Bianca",
    "Kiara",
    "Crystal",
    "Erica",
    "Angelica",
    "Hope",
    "Chelsea",
    "Alana",
    "Liliana",
    "Brittany",
    "Camila",
    "Makenzie",
    "Lilly",
    "Veronica",
    "Abby",
    "Jazmin",
    "Adrianna",
    "Delaney",
    "Karina",
    "Ellie",
    "Jasmin"
  ]
}