CS 435 Group Project
bjsmith01 / tasky Goto Github PK
View Code? Open in Web Editor NEWCS 435 Group Project
CS 435 Group Project
Setting a minimal infrastructure to allow to write JUnit test cases for the backend/model of the application.
A user can have multiple projects. A project can have multiple tasks.
The server should be able to implement the following actions:
Everything in the TVDB are stored as an xml file. This will probably be as simple as going to the url and parsing the information.
Add functionality to allow the user to delete a task (that belongs to a project that belongs to a user).
For deleting a task, the email (username), the ID of the project and the ID of the task need to be specified:
String deleteTask(String email, String projectID, String taskID);
If the taskID is found in the database, the task will be deleted and the server will return DELETE_TASK_SUCCESSFUL.
If the taskID is not found (because the task was already deleted), the server will return DELETE_TASK_FAILED_NO_SUCH_TASK_ID.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
All of the folders are stored by a unique id and their name in the database. I'm thinking that it might be handy to keep a file of these ids and their names in the Android Application. This way it would be a lot easier to 1: keep track of what folders the user has stored, and 2) look up folders in the database.
Add functionality to allow the user to create a new project and to get a list of all the projects available to him.
For creating a project, the name of the project and the email of the user need to be specified:
String addProject(String email, Project project);
The server will assign a unique ID to the project, so that two project with the same name could exist if necessary.
The return of this method will be a string ADD_PROJECT_SUCCESSFUL.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
For getting the projects, the signature is:
List getProjects(String email)
Given a username, a list of all projects (including project IDs and project names) will be returned.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
-Adding a button/ confirmation to ExpandableListView in TVSearchActivity,
-Creating Task from query results()
*Maybe a setting to change satellite/cable provider
It will be important to allow the user to view individual days on the Calendar View so that they can see more specific details. Thus, as the Calendar View is implemented via a GridView, each item in the view shall, upon being tapped, switch to a new view that holds only tasks that pertain to the specific day selected. From there the user will be able to view the specific details of each task.
Add functionality for the user to signup using an email and a password. The server will respond with:
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
Implement a very simple Java client that access to the LoginServlet. This code can be used as a template for connecting from an Android app to the servlet and for exchanging information between the client and server.
The client:
The servlet:
The request (from client to server) has 3 lines in the form:
LOGIN
email
password
The response (from server to client) has 1 line, representing one number (0 for success, 1 for invalid username/email or 2 for invalid password):
loginStatus
So at this point in time the Calendar View offers a date for every day in the calendar as well as the number of tasks due upon that day. Incrementing that value beyond 1, however, is proving to be a pain at the moment as the app is producing some sort of an unseen value that allows it to dodge an integral if statement in the activity.
Add functionality for the user to login using an email and a password. The server will respond with:
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
Has anyone found out how to access the Google Database via Android?
I'm assuming it works like a SQL table.
Add functionality to allow the user to delete a project (that belongs to a user).
For deleting a project, the email (username) and the ID of the project need to be specified:
String deleteProject(String email,String projectID);
If the projectID is found in the database, the project will be deleted and the server will return DELETE_PROJECT_SUCCESSFUL.
If the projectID is not found (because the project was already deleted, or it does not exist), the server will return DELETE_PROJECT_FAILED_NO_SUCH_PROJECT_ID.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
It would be good to look into filtering the results from the database before pulling them.
Again under the assumption that this works similar to SQL it's possible to do something like "Select ALL From Where Project ID=#"
This way we only pull relevant information instead.
We may also want to store what we pull internally on Android, because constantly looking back and forth in the database would impact performance.
Assign Unique IDs for new Projects and Tasks, even if the server is restarted. This is accomplished by storing max projectID and max taskID in the database.
Whenever a new project (or task) is created, the maximum projectID (or taskID) value is retrieved from the database, and then the next available value is stored back in the database.
A user can specify a due date for a particular task using textual dates, such as "today", "tod" (for today), "tomorrow", "tom" (for tomorrow), "Monday", "mon", "tuesday", ..., "sunday", "sun".
For the days of the week, any lower/upper case variation is accepted.
Examples:
The due date is optional and does not need to be specified.
Google App Engine (GAE) offers different ways of storing/retrieving data (see https://developers.google.com/appengine/docs/java/storage). Probably the one most suited to our project is the App Engine Datastore (https://developers.google.com/appengine/docs/java/datastore/).
Create a simple JSP script (http://tasky-server.appspot.com/testGoogleDatastore.jsp) that tests:
The actual data can be seen in the Google Developers Console (https://console.developers.google.com/project/apps~tasky-server/datastore/query)
Known issue:
Create an interface that defines the operations between client and server (e.g., login, get projects, get tasks, add project, add tasks, etc.)
right now the main ToDoList page looks for a folder and displays all of the tasks inside of that folder. It might be beneficial to take the code that's inside of there and use it to display all the tasks that are stored in a single cell in the calendar. Maybe create an activity that gets passed the task id's from the calendar and displays them.
User now can select their satellite/ cable provider to get specialized TV times
can query rovi database and view: name of show/movie, synopsis, next showing of movie/video.
TVDB doesn't do what is required for our app, I'll be editing the code to use this
To present the need of the application pulling the available tasks from the database after every activity change, the tasks must be shared between the activities.
Add functionality to allow the user to create a new task (that belongs to a project) and to get a list of all the tasks available for a particular project that belongs to a user.
For adding a new task, the description of the task, the priority (on a scale of 1 - high priority to 5 - low priority), the due date, and the ID of the project it belongs to need to be specified:
String addProject(Project project, Task task);
The server will assign a unique ID to the task, so that two tasks with the same name could exist in the same project if necessary.
The return of this method will be a string ADD_TASK_SUCCESSFUL.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
For getting the list of task specific to a project that belongs to a user, the signature is:
List getTasks(String email,Project project);
Given a username and a project ID, a list of all tasks (including task ID, description, due date, priority) will be returned.
Test it at http://tasky-server.appspot.com/testAccessToTaskyDatabase.jsp
Create a new Google App Engine (GAE) Application that creates a simple web page that allows to send requests to a server, access the database, and get a response back.
The GAE application can be accessed and tested at:
http://tasky-server.appspot.com
The following functionality can be accessed through a webpage written in JSP:
Known issue:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.