Codeaqua: Difference between revisions

From CS486wiki
Jump to navigationJump to search
Content deleted Content added
Line 29: Line 29:
==== Web Service (API) ====
==== 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.
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.

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.

Revision as of 05:05, 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

Who Are We?