The social calendar application is an Android client application that provides the functionality of a calendar with the additional features that make it sociable. Users of the application can add friends with whom they can schedule social events. Communication between people can be a problem sometimes due to their busy schedules. The application provides a solution to these kinds of problems. Users will be using the application as a normal simple calendar and when they want to schedule a meeting with their friend, they can do it with the application with a few clicks. This will decrease the unnecessary conversations between people and the possibility of calling your friend at an inappropriate time.
The goal of this project is to provide an application that users can use as a simple offline calendar, which also has a possibility to be online and sociable as well. It is supposed to decrease the number of unnecessary conversations for setting up a meeting and the number of unexpected calls, especially the calls during appropriate times when someone is busy. The application acts as an ordinary calendar, the user can add simple events, but it has many advanced features, that makes it distinguishable from the rest.
Users of the application will be able to search for friends from the already registered users, add them as a friend by sending a friend request, cancel an already sent friend request, approve and decline friend requests from other users. Once two users become friends, they will be able to see each other’s schedules and set up a meeting or any other social event with the other user in one of the time slots that are free for both of them.
For the developer’s point of view, the goal of the project is to get familiar with how more complex applications are built and distributed, the new technologies and the industry’s best practices and approach to the problem-solving.
The approach that was taken during solving this particular problem was to focus on the current industry trends, for example, using the newest and the most popular technologies that had the highest perspective that they will remain or become top contenders in their respective fields at the time of working on this project. For the architecture of the project a three-tier structure was chosen, it is a client-server architecture where three different tiers, which can also be referred as layers, are implemented and maintained separately and completely independent of each other. Those layers are A presentation layer, an application layer, a data layer. A presentation layer, it is the topmost layer, it presents the application data in a meaningful way, providing a user interface that the users can understand and interact with the data presented to them. The presentation layer was developed in Android. An application layer, it contains the business logic, it processes the commands of the users, makes logical decisions and performs calculations. It also moves the data to the other two layers. The application layer was developed in Spring. A data layer, it is a database management system, where the application data is stored, provides access to the data and data persistence mechanisms, for the data layer MongoDB was chosen.