Crystal is an assignment tracking app that allows users to manage their upcoming assignments for school. The app provides a slick user interface that can display their assignments within a calendar or in a more traditional, day-by-day list-based format.
What separates Crystal from other assignment tracking apps is a feature that will suggest what assignment our users should be working on at that very moment. We can calculate this by taking into account the assignment’s due date, how much a user is struggling in a certain subject, and how difficult each assignment is. For example, Jimmy might log on to the app and click a button labeled “What should I work on now?”. Because we know that Jimmy struggles with math and he has a 10-page calculus worksheet due in 2 days, we will suggest he works on that instead of a book report due in a month.
-
Create new Eclipse project. Call it
crystal
.- Go to
Libraries
tab. Add your localJavaFX11
user library to the class path.
- Go to
-
Create a new package within your project. Call it
application
. -
Create a new class within the new
application
package. Call itMain
.- In the superclass field, type
javafx.application.Application
.
- In the superclass field, type
-
Now clone this git repo somewhere else.
git clone https://github.com/eeshaan/crystal.git
-
Copy the contents from this repo into your Eclipse project.
- Be sure to include the hidden files from this repo (a folder called
.git
and a file called.gitignore
) in your copy! - Select some form of the "yes" option when your computer prompts you if you want to replace the files.
- Be sure to include the hidden files from this repo (a folder called
-
You're all set up. Run a
git status
inside your Eclipse project directory and make sure everything is up-to-date.
Edit the path variables in either Makefile
(Linux/macOS) or make_fx.bat
(Windows). In most cases, you should only need to edit the MP
(JavaFX module path) variable.
Now you can run make
or make_fx.bat
to compile the application. Look through the file for other commands like run
and jar
.
When trying to run from Eclipse normally, you'll encounter this error:
Error: JavaFX runtime components are missing, and are required to run this application
To fix this, edit your run configuration for the Main
class. Add the following for the VM arguments:
Linux/macOS
--module-path /path/to/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml
UNCHECK THIS OPTION
Use the -XstartOnFirstThread argument when launching with SWT
Windows
--module-path "\path\to\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml
Now you can "Run as" Java Application from the Eclipse menu.
For the most part, tasks will be added as issues into the To-do column of the project board. When working on a certain issue, create a new branch. This will help prevent merge conflicts.
Never push code directly to
master
. @AtaGowani will write "NO" on your forehead in Sharpie while you're sleeping if you do.
- Before doing anything, make sure git is configured properly and that everything is up-to-date by running
git status
. Then rungit pull
. If you accidentally made changes that cause a merge conflict, revert them by "checking-out" from the latest commmit by runninggit checkout <filename>
. You can also stash them for later by runninggit stash
. - When working on #1, I "checked-out" into a new branch by running
git checkout -b issue_1
. - Once I was done adding my contributions, I ran
git commit -a -m "add css (#1)"
.- You should also reference the relevant issue number in your commit — it helps keeps things tidy on GitHub. You can find the issue number in the Issues tab of this repo.
- After pushing all the commits related to your issue and everything is working as intended, create a pull request on GitHub that merges the changes from your branch into
master
.
Note: This issue-based approach should keep us organized for the most part, but if you feel you need to make other changes, feel free to make another branch and/or push commits that don't pertain to a certain issue. It's more important that we get the program done — don't wait around for someone else to assign you an issue.