Codeaqua: Difference between revisions
| Line 31: | Line 31: | ||
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. |
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. |
* 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. |
* 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. |
* 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. |
* 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. |
We are hosting this web service on top of an Amazon EC2 instance provided by Amazon Web Services. |
||
Revision as of 05:27, 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