Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
brianium committed Nov 12, 2017
0 parents commit 183bc78
Show file tree
Hide file tree
Showing 28 changed files with 2,629 additions and 0 deletions.
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/resources/public/js/**
/resources/main.js
figwheel_server.log
pom.xml
*jar
/lib/
/classes/
/out/
/target/
.lein-deps-sum
.lein-repl-history
.lein-plugins/
.repl
.nrepl-port
*~
\#*\#
.\#*
/node_modules
.DS_Store
/out/
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
.DEFAULT_GOAL := build

install:
npm install
npm install -g electron-packager

compile:
lein build

build: install compile
electron-packager . Tomaat --out=out --ignore='\b(src\/tomaat|out|target|dev|Procfile~?)\b' --ignore='[.](clj|log)' --ignore='~$$' --overwrite --icon="tomato.icns"

.PHONY: install
54 changes: 54 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Tomaat

An electron app written in ClojureScript. Integrates with Slack to let people know you
are doing great things! Uses [reagent](http://reagent-project.github.io/) for the UI.

<p align="center">
<img src="tomaat-example.gif?raw=true" alt="Tomaat example" />
</p>

## Features

* 25 minute pomodoro timer
* Update Slack profile with tomato while pom is in progress
* Send a Slack notification when pomodoro is complete

Slack usage is optional, but if configured - your profile will be updated like so:

<p align="center">
<img src="slack-screenshot.png?raw=true" alt="Slack with updated profile" />
</p>

## Development
Tomaat uses [lein-figwheel](https://github.com/bhauman/lein-figwheel) for hot reloading of *all*
source files. Since Tomaat leverages electron apis across the board - all builds target `:nodejs`.

To start development process:

```
$ lein start
$ lein electron
```

### Project structure
All source files are under `src/tomaat`, and several build targets are laid out in `project.clj`. Tomaat follows
a structure that allows for the main electron process, a renderer process, and a worker process.

The worker process runs as an invisible window for the purpose of running the timer, persisting config, and interacting
with slack.

## Building
Tomaat is packaged using [electron-packager](https://github.com/electron-userland/electron-packager). It has currently
only been built and tested on macOS.

Just use `make` to build Tomaat.

```
$ make
```

## Todo
- [ ] webview for fetching slack token
- [ ] add timer to tray
- [ ] maybe play a sound on complete (useful if slack not configured)
- [ ] test and build for other operating systems
Loading

0 comments on commit 183bc78

Please sign in to comment.