<!--
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"
]
}