Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
1 
Lab 1 – Free Time Description 
 
 
 
 
 
 
 
 
 
 
 
 
 
Lab 1: Free Time Description 
Sean Burns 
ODU Computer Science 411W 
Professor Lloyd Decker 
1/31/2022 
Version 1 
  
2 
Lab 1 – Free Time Description 
 
 
 
Table of Contents 
1. Introduction 
1.1. Societal Problem (pg. 3) 
1.2. Problem Characteristics (pg. 3) 
1.3. Solution Statement (pg. 4) 
1.4. Solution Characteristics (pg. 4) 
2. Product Description (pg. 4) 
2.1. Key Features and Capabilities (pg. 5) 
2.2. Major Components (pg. 5) 
3. Identification of Case Study 
3.1. Who the Product is for (pg. 7) 
3.2. What Will the Product be Used for (pg. 7) 
3.3. Who else will Benefit from this Product (pg. 7) 
4. Product Prototype Description 
4.1. Prototype Architecture (pg. 8) 
4.2. Prototype Features and Capability (pg. 8) 
4.3. Prototype Development Challenges (pg. 9) 
5. Glossary (pg. 10) 
6. References (pg. 12) 
 
Figures 
1. AWS Cloud Service (pg. 6) 
3 
Lab 1 – Free Time Description 
 
 
 
  
 
 
1. Free Time 
 According to ECAL, a calendar marketing platform, 70% of adults rely on some kind of 
digital calendar (ECAL, 2018), yet many are still dissatisfied with most available digital 
calendars (Pierce, 2020).  Organizing events around the schedules of multiple people can be 
difficult and often involves back-and-forth communication as overhead. Existing calendar 
applications are not well-suited to quickly and easily schedule social events to take place in 
leisure time.  
 
1.2 Problem Characteristics 
 Much of the time needed to organize events is dedicated to communication: back-and-
forth messaging to identify when the attendees are available, proposing potential times for the 
meeting, and waiting for a reply to see if the proposed time works for everyone. If not, then the 
whole process must be started again. Most existing scheduling applications are targeted towards 
large, professional organizations like schools and businesses. There are very few that are 
specifically dedicated to personal or recreational use. There are many times in our daily lives 
when we find ourselves needing to organize social events during leisure time, such as parties and 
get-togethers or online gaming sessions with friends. This problem is especially pertinent in the 
Internet Age, when friends can be in several different time zones, making scheduling even more 
difficult. 
4 
Lab 1 – Free Time Description 
 
 
 
1.3 Solution Statement 
 We can streamline this process and make scheduling events outside of work and school 
more accessible to everyone by allowing friends to share their calendars with one another and 
provide a way to automatically find the ideal meeting times for a group of people based on their 
availability, without the need for constant back-and-forth communication. 
 
1.4 Solution Characteristics 
  A solution to this problem would be to have an application that allows users to input 
their weekly availability or free time on a calendar, as well as their preferred activities. This 
calendar could then be shared with the user’s friends, with privacy controls to allow the user to 
hide unwanted information on their calendar from other users on their friends list or in an event. 
 
2. Product Description 
 Free Time is a mobile calendar and scheduling application with limited browser 
functionality that assists users in scheduling and organizing events by suggesting meeting times 
based on the free time of the users invited. Free Time can aid users in planning events by 
correlating the schedules of a group of friends or colleagues and finding the ideal times for 
meeting up based on both user-specified blocks of free time and pre-existing schedule 
information from third-party calendar applications. As a mobile application, it will be easy to use 
and accessible to average users who find that professional or business-oriented calendar 
applications are not fit for their needs. 
 
5 
Lab 1 – Free Time Description 
 
 
 
2.1. Key Features and Capabilities 
 Free Time features a single calendar and friend list for each user, with the option to 
import calendar and schedule information from third-party calendar applications such as Google 
Calendar and Microsoft Outlook. The user can specify blocks of free time which the application 
will prioritize when searching for available times for event scheduling, searching for times in 
which all users invited to an event are “free”. Free Time features event-level privacy controls 
that allow the user to specify what information they want to be shown to friends and other users 
invited to specific events. This allows users to control what details about their personal schedules 
other users can see. Free Time allows users to organize their schedules with blocks of free time, 
in which the user would be available to attend meetings or events. The application will use these 
blocks in addition to imported calendar information to determine the ideal times to schedule 
events based on the schedules of invited users.  Free Time allows users to view the availability of 
other users on their friends list, provided that said user has allowed this in the privacy 
settings. Free Time also allows users to specify preferred activities, enabling the application to 
search for and recommend events that the user may be interested in which fall within the user’s 
specified free time.   
 
2.2. Major Components 
Hardware 
 The hardware required to use the application will be be any Android-compatible mobile 
device or tablet to download the mobile app, or a laptop or desktop computer with a modern web 
browser to access the limited web version. 
6 
Lab 1 – Free Time Description 
 
 
 
Software 
 The software that will be used to run the front end of the application will be the Android 
operating system for the mobile application and HTML and CSS for the web version. PHP, 
Apache, and Ubuntu will be used to run the backend of the application and MySQL will be used 
for the database services. Development will be handled with Android Studio and GitLab, using 
Git for version control, GitLab for project management and issue tracking, and Javadoc for 
documentation. Google Calendar API and Microsoft Outlook API will be used to allow the 
application to interface with these third-party calendar applications.  
 
AWS Cloud Service 
  
Figure 1. AWS Cloud Service  
7 
Lab 1 – Free Time Description 
 
 
 
 EC2 instances will be used for Production, Staging, and Development. S3 Storage with 
buckets will be used for the Main Database backups and application resources. An RDS server 
will host the Main Database and the Development Database. A Simple Email Service (SES) will 
also be used to communicate with the user. 
 
3. Identification of Case Study 
3.1 Who the product is for 
 This product is designed for people who are not satisfied with existing scheduling 
applications, friend groups who find scheduling meetings and get-togethers time-consuming and 
difficult, as well as gamers looking for easier ways to organize gaming sessions with their online 
friends. 
 
3.2 What will the product be used for 
 This product will be used to reduce the amount of time required to plan a social event. It 
will also circumvent situations in which friends may ask you to hang out at an inconvenient time. 
The product will also allow you to compare your schedule with your friends and see which of 
your friends are currently interested in the same activities that you are. 
 
3.3 Who else might benefit from this product 
8 
Lab 1 – Free Time Description 
 
 
 
 Groups that may benefit from this product are gamers trying to organize multiplayer 
games, students looking to schedule study sessions, event managers, and potentially business 
workers.  
 
4. Product Prototype Description 
 4.1 Prototype Architecture 
 The two hardware platforms that will be necessary for the prototype are a phone or tablet 
running an Android operating system and a laptop or desktop computer with a modern web 
browser. 
 For the frontend software, Java, Android, HTML, and CSS will be used. The backend 
will consist of PHP, Apache, and Ubuntu, and the database will run on MySQL. Testing will be 
done with Junit and PHPUnit. The development environments will be Android Studio and 
Gitlab, while version control will be handled with Git. The program will be compatible with 
Google Calendar API and Microsoft Outlook API. Documentation will be handled with Javadoc, 
and project management and issue tracking will be carried out through GitLab. Group 
collaboration will largely take place through Discord and Zoom. 
 
4.2 Prototype Features and Capability 
 The core components of the prototype will include a friends list for each individual user, 
user-specific available time blocks, and a list of preferred activities. When planning an event, the 
system will automatically suggest times when all members of the event are free. The prototype 
will have privacy controls at the event level, ensuring that users are in control of what 
9 
Lab 1 – Free Time Description 
 
 
 
information they wish to share. The prototype’s database will handle the storage of user 
information. 
 
4.3 Prototype Development Challenges 
The biggest challenges for development will be learning new languages, APIs, and 
database schema required for implementing the prototype.  
 
5. Glossary 
● Amazon EC2 (Elastic Compute Cloud) – a cloud-computing platform commercially 
operated by Amazon Web Services (AWS) on which users can run computer 
applications on virtual computers. 
● Android – an operating system for mobile devices which operates on a modified Linux 
kernel and open source software and is commercially supported by Google. 
● Android Studio – the integrated development environment designed specifically for 
Android development. It is available on Windows, macOS, and Linux operating 
systems. 
● Apache – web server software that is free and open source. 
● AWS (Amazon Web Services) – cloud computing services that provide basic 
infrastructure and distributed computing tools on a pay-as-you-go basis.  
● Digital Calendar – virtual representation of a calendar used to track appointments and 
manage time (e.g. Microsoft Outlook Calendar, Google Calendar). 
10 
Lab 1 – Free Time Description 
 
 
 
● GitLab – a DevOps platform for software development that combines development, 
security, and software operation in one application. 
● GUI (Graphical User Interface) – allows software users to interact with and receive 
immediate feedback from electronic devices by the use of visual and audio elements. 
● Java – an object-oriented programming language used by Google as the basis for 
Android applications. 
● JUnit – JUnit is a Java unit testing framework that's one of the best test methods for 
regression testing. An open-source framework is used to write and run repeatable 
automated tests. 
● MFCD (Major Functional Component Diagram) – shows what hardware and 
software are required by the system and how users are able to interact with the system. 
● MySQL – open-source management system for relational databases which organizes 
data in one or more tables that are related to each other; commercially developed by 
Oracle. SQL is an abbreviation for Structured Query Language, which is a language 
designed to manage and use relational databases. 
● PHP (PHP: Hypertext Preprocessor) – a scripting language used for web development. 
● PHPUnit – a unit testing framework for the PHP programming language. 
● Ubuntu – Linux-based operating system for servers, desktops, cloud computing, and 
Internet of Things devices. 
● UTC (Coordinated Universal Time) – the world standard time due to its alignment of 
mean solar time within one second at zero degrees longitude. 
  
11 
Lab 1 – Free Time Description 
 
 
 
 
6. References 
70% of adults rely on digital calendar. ECAL, 16 May 2018, https://ecal.com/70-percent-of-
adults-rely-on-digital-calendar/. 
Pierce, David. Everybody hates digital calendars, so everybody’s trying to build a better one. 
Protocol, 25 Aug 2020, https://www.protocol.com/future-of-digital-calendars.