Giter Club home page Giter Club logo

structify's Introduction

About

Takes milestone dates (like exams, assignment due dates and other deliverable dates) from multiple course syllabi in a university semester and combines them with a user's study time preferences and relative importances of the courses (course weights) to generate a comprehensive study/work schedule for the semester that allocates available study time to all assignments and exams based on percentage weights stated in course syllabi and on overall course weights stated by the user. The idea is that all course items will be completed in a timely fashion with an adequate and not excessive amount of time spent, and the schedule owner will only need to spend minimal amounts of time planning their workflow.

Time distribution rules

  1. Final exam study time = (Weekday time in whole semester+Weekend time in whole semester)(Course Weight)(Final Exam Percentage in Course)
  2. Final exam study time is distributed over the 13 days leading up to the exam date.
  3. Midterm exam study time = (Weekday time in whole semester+Weekend time in whole semester)(Course Weight)(Midterm Exam Percentage in Course)/(Number of Midterms in Course)
  4. Midterm exam study time is distributed over the 6 days leading up to the exam date.
  5. Assignment work time = (Weekday time in whole semester+Weekend time in whole semester)(Course Weight)(Assignment Percentage in Course)/(Number of Assignments in Course)
  6. Assignment work time is distributed over the 3 days leading up to the exam date.

Usage:

  1. MainActivity (accepts basic user inputs about study time and number of courses)
  2. SecondInputActivity (dynamically generates forms for all courses where user inputs course syllabi data)
  3. ThirdInputActivity (generates a summary of study time distributions for all courses for review by user)
  4. YourCalendarActivity (generates a GUI so user can preview all exam events and study reminders over the semester in a scrollable graphical calendar format), and gives the user the option of saving the calendars as PNG to the phone's gallery or importing the schedule outright to Google Calendar

  1. ImportGoogleCalendarActivity (imports all study schedule data to a new entry in the user's Google Calendar List, where it can all be deleted at ease if required)

TODO:

  • Fix bugs in gallery bitmap generation function in YourCalendarActivity
  • Upgrade GUI styles

structify's People

Contributors

adrianlee0118 avatar

Stargazers

 avatar  avatar

Watchers

 avatar

structify's Issues

Trying to draw layout to photo gallery (into a directory called screenshots) multiple times between updates of that layout

There are many activities in this app. The one containing this issue is YourCalendarActivity.
A for loop in YourCalendarActivity on each iteration attempts to:

  1. convert a layout CalendarCanvas to a bitmap and write it to external storage Screenshots folder, and
  2. update the layout by pressing a button in that activity NextMonthButton

Where from previous activities a start month and end month have been obtained and the methods NextMonthButton.onclick() and UpdateCalendarCanvas both update a calendar-style UI.

Things that are working OK:

  1. The alternating operations of updating UI and writing to file are not occurring simultaneously. Semaphores and threads were used to ensure that writing to file only occurs after all UI changes are finished and given the log messages this seems to be working as intended.
  2. The FileOutputStream creates a file as expected in a directory called Screenshots as directed. It looks crude but creates output--certainly can be improved.
  3. External storage permissions are working fine. The appropriate clause has been included in the Manifest folder and as seen in the code permissions are also dynamically requested at runtime as required--a log message within isStoragePermissionGranted() indicates that the activity does in fact have permission, and that method of course will request permission if it is not available.

The remaining problems:

  1. Only one file is outputted to the gallery, rather than the multiple that are expected as denoted by month_duration variable in the method. Sometimes when the gallery is opened after running this method it will look like it's loading the expected number of pictures but when it settles only one picture remains, always.
  2. The single picture that is generated is always completely white. Previously, it was totally black save for the colored elements of the original layout CalendarCanvas.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.