This project is being merged with SwiftDotNet.
Sample full-featured web application containing separate WebRole (Front-End Client), WebAPI (Web API 2 Site using DocumentDB as data store), and Apache Cordova MobileApp using AngularJS / Ionic.
This project's goal is to integrate best practices across multiple projects utilizing the following frameworks and feature sets: AngularJS v1.4.3+, Azure Search, Bing Maps, ASP.NET MVC 5 / Web API 2, Azure DocumentDB, Real Time Updates (SignalR), ASP.NET Identity / OWIN, Dynamic Cross Origin Resource Sharing (CORS), Dependency Injection (Ninject), Dynamic Multi-Tenant Data Partitioning (Hash/Managed Hash/Range/Lookup/Spillover), Azure Blob Storage, and Two-Factor Authentication (SendGrid, Twilio).
LIVE CLIENT DEMO: https://angularazuresearch.azurewebsites.net/
LOGIN: [email protected]
LIVE API DEMO: https://githubapi.azurewebsites.net/
NOTICE: YOU MUST UPDATE ENDPOINT URIs PRIOR TO PRODUCTION DEPLOYMENTS. DEMO SERVICES WILL THROTTLE PUBLIC USERS.
- Progress is currently on hold. Extended work is being converted into a new project.
- WebRole works for User login/signup and Trails data CRUD operations. Confirm Email not enabled in demo.
- WebAPI is fully working for Trails data and User accounts.
- DataIndexer is set to Trails data schema. Must configure via app settings config file.
E-Mail Support: [email protected]
- dlMenu animations do not render properly in all instances. Delayed in some cases.
- Url still contains filters and orderby parameters after leaving Homes page.
- Confirm Email not tested. Manage user account view will be resolved in next update.
- External login providers (Facebook / Twitter / Google / Microsoft) are not implemented yet. Will be added in the coming updates.
- Limitation for Cors is that it must have the correct URI syntax. Do not add "www." if it is not necessary. Future updates will address this.
- Range and Lookup Partition Resolver Initializers are not completed yet. Spillover Resolver is not async.
- Multiple partitioning resolvers requires multiple clients. Current implementation is limited to a single resolver per client.
- External login support and autopopulating data/profile pictures from FB/Twitter accounts will be added in next round of updates.
- Interaction with Blob Storage to upload/download files is not completed. Still needs to be linked up with DocDB.
You must configure the project with your own Azure Search Keys, Azure DocumentDB Database Connection Information, and Bing Maps API Keys.
https://azure.microsoft.com/en-us/pricing/free-trial/
http://www.microsoft.com/maps/Licensing/licensing.aspx#mainTab2
Azure Search Service are free excluding outbound data transfers (3 data connections / indexes / indexers, 50 MB Total Storage, 10,000 Documents).
https://azure.microsoft.com/en-us/pricing/details/search/
Azure DocumentDB requires at least an S1 plan ($25/mo = 250 RU/sec, 10 GB Storage) for each collection used (even empty ones).
https://azure.microsoft.com/en-us/pricing/details/documentdb/
https://azure.microsoft.com/en-us/pricing/details/data-transfers/
While connected to the internet, you should use the following instructions from the Ionic Framework site to auto-generate the appropriately cropped and resized splash and app icons for all the platforms you are deploying to: http://ionicframework.com/docs/cli/icon-splashscreen.html
The TL;DR version is to add the icon and splash screens (renamed to icon.png and splash.png [or psd]) to the "resources" folder at the root of the MobileApp project. Then set your command line or terminal window to the Mobile App project's directory. From there, enter the following commands: "ionic resources --icon" and "ionic resources --splash". The commands will automatically generate the icons and splash screens for all platforms currently added to the project. If it doesn't work, delete the existing icons and splash screens and run the commands again. You must have the Ionic Framework installed via NPM (with the appropriate path set) in order to execute "ionic" prefixed commands.
{
"id": "463b5add-3abb-482c-8f72-9f199203e22b",
"UserName": "[email protected]",
"Email": "[email protected]",
"EmailConfirmed": true,
"PasswordHash": "AMZO39oQGu9eUtMcy8gho6oPxETXQ8OPmeju7JEVMeHW7LgQi/hcnEATX7294xfBKg==",
"SecurityStamp": "31a3e067-7508-41c4-acd5-d4311da67b2c",
"PhoneNumber": null,
"PhoneNumberConfirmed": false,
"TwoFactorEnabled": false,
"LockoutEnd": "0001-01-01T00:00:00+00:00",
"LockoutEnabled": false,
"AccessFailedCount": 0,
"Logins": [],
"Claims": [],
"Roles": []
}