Codeaqua: Difference between revisions
| Line 47: | Line 47: | ||
* It uses only programming language as JavaScript with a beautiful library named backbone.js and its dependencies such as jQuery and underscore.js. |
* It uses only programming language as JavaScript with a beautiful library named backbone.js and its dependencies such as jQuery and underscore.js. |
||
* The main purpose of backbone is to provide asynchronous connection to a specific url and showing them without the requirement of refreshing the page. In this case the url of the connection made is the url of our web service. |
|||
* The main purpose of |
|||
* For decreasing the workload of designing we are using the Bootstrap framework provided by Twitter, and because we decided to make a clean user interface we are using the variation of the Twitter Bootstrap named Flatstrap. |
|||
* We are using an open source project called Leaflet to show the necessary maps. |
|||
* We are using an open source project called autobahn.js to ease the necessary work to create web socket connections for realtime connection through web sockets. |
|||
For speed improvements and the ease of the work, we are not using any serverside code for web application, it is just about making requests with JavaScript and processing the JSON responses in necessary way to provide a clean, fast and simple user experience. |
|||
== Who Are We? == |
== Who Are We? == |
||
Revision as of 05:33, 3 May 2013
Introduction
codeaqua can be identified as a software product that helps people to convert their weak, web based social networks to real, face-to-face, strong social networks. To do so, it uses iOS application and web site.
Purpose of the project
Purpose of the project is to create a new social network which helps you to where to go when you want to enjoy, entertain yourself. It works as a database of possible events you might want to go depending on your friends and location.
The problems that are being planned to be solved
- When a person wants to go out for a party, if they don't know where to go, codeaqua comes to his/her help to supply several possible solutions to be gone.
- If a person wants to go out for a party, and doesn't know where their friends are, codeaqua can show the most crowded places that his/her friends are there.
- There is no place like this makes this event finding problem social, because you want to spend your time with your friends and enjoy with them.
- In this market, the other apps show you all the events regardless if you want to go or not. Our solution is only showing you the specific types of events you might want to go, and putting the places where your friends are most crowded.
- Providing an activity feed that shows you the friends' activities such as an event creation, and maybe a friendship that might concern you.
- Finding all of the people you might want to get information about them, so that you can friend them and subscribe to their activity feeds, because your friends is kind of reflection of your lifestyle, and you most probably want to go to events that they are going.
The main purpose of codeaqua solve all of the problems and provide a clean, neat user interface to interact with it.
Technical Details
There are 3 different phase of codeaqua:
- Web Service (API)
- iOS Application
- Desktop Web Application
Web Service (API)
Web Service is written in PHP using Laravel Framework. It is the main logic part of the project. And also it is the only part works with database.
- For the main backend database, MySQL has been used. We chose it because it is almost the best possible solution for PHP applications. We are using the powerful Amazon RDS service from Amazon Web Services to host our database, which decreases the workload of ours for such as creating a write or read replicas of the master database.
- What web service is doing is that, it gets requests via HTTPS and the specific urls to pointing which resource is being requested and provide the necessary info with making necessary calls to the database. Every request must be done via an authorized API-KEY which will be sent as basic-authentication username and a secret as a password. And it will process the request and returns a JSON response to be executed on the frontend with needed HTTP Response Status Codes.
- Just because we will need some realtime information to be sent to the users of the application on the frontend, we setup a websocket server and providing necessary realtime info via this server through web sockets for both Web Application and iOS Application. The websocket server's name is ratchet and it's using React websockets for providing asynchronous messages to frontend, and also it is using a messaging queue named ZeroMQ to not to use information needed and making sure that it is sent to the user for both iOS app and web app.
- And also, because we are using an iOS specific mobile application, we needed to find a way to send Apple Push Notifications to the user, and a php package named Notificato comes to our help.
We are hosting this web service on top of an Amazon EC2 instance provided by Amazon Web Services.
iOS Application
Desktop Web Application
Web application's main purpose is to show you what is going on rather than creating content for the application, it shows what is going on with the life of your their friends, which party they have been, to create a photo pool for specific events you have been.
- It uses only programming language as JavaScript with a beautiful library named backbone.js and its dependencies such as jQuery and underscore.js.
- The main purpose of backbone is to provide asynchronous connection to a specific url and showing them without the requirement of refreshing the page. In this case the url of the connection made is the url of our web service.
- For decreasing the workload of designing we are using the Bootstrap framework provided by Twitter, and because we decided to make a clean user interface we are using the variation of the Twitter Bootstrap named Flatstrap.
- We are using an open source project called Leaflet to show the necessary maps.
- We are using an open source project called autobahn.js to ease the necessary work to create web socket connections for realtime connection through web sockets.
For speed improvements and the ease of the work, we are not using any serverside code for web application, it is just about making requests with JavaScript and processing the JSON responses in necessary way to provide a clean, fast and simple user experience.