-
CodeTime is a plugin for Sublime Text editor which will help developers to track the amount of time spent on multiple files, programming languages and projects. The user will be able to perform the analysis of the time spent to improve the productivity by analysing the most frequently used programming language, most productive time of the day, files in project which took maximum time for development and projects which took maximum time for completion.
-
The developer can add the project deadlines to the plugin and the plugin can help developers stick to their goal by predicting the finish time of the project based on the data gathered from the user. Multiple developers can compete with each other through a leaderboard where a leaderboard will display the ranking of most productive developer and admin/manager can easily monitor the productivity of each and every developer with the help of a common interface.
Project Requirement | Architecture Diagram | UI MockUps | Current Working Dashboard
- Open Sublime Text.
- Go to Preferences -> Browse packages.
- A new window containing Sublime packages directory will open up. Let's call this folder
SublimePackagesFolder. - Open your terminal and navigate to
SublimePackagesFolder. - Clone this repository inside
SublimePackagesFolder(This makes sure that Sublime recognizes our plugin package to execute). - Copy the Context.sublime-menu file to your User Packages directory. To go to User Packages directory, navigate to
SublimePackagesFolder/Userfolder. - You are all set. The plugin is now active and is running in the background.
- Open Sublime Text.
- Open a file that you wish to work on.
- In the file pane, right click and select the option
View CodeTime Dashboard.
Note: Please install and use Sublime Text 3 only for development.
- Perform the steps in the Installation section described above.
- Install Package Control by pressing
ctrl+shift+p (Win/Linux)orcmd+shift+p (Mac). - Run
python setup.py installto install all the dependencies. - Back in Sublime Text, Open Package Control by pressing
ctrl+shift+p (Win/Linux)orcmd+shift+p (Mac). Navigate to optionPackage Control: Install Package. Install packages:SublimeLinter,SublimeLinter-flake8,sublack,UnitTesting. - Navigate to
Package Settingsoption underPreferencesin Menu bar. ForMacusers, thePreferencesoption will be found underSublime Textin Menu bar. - Once under Package Settings, move to
SublimeLinter > Settings. You will see that a file with the nameSublimeLinter.sublime-settings - Useropens up. Copy the following code snippet to ignore a linting error related to Tabs vs Spaces war :)
// SublimeLinter Settings - User
{
"linters": {
"flake8": {
"args": ["--ignore=W191"],
}
}
}
- For local execution of the tests, make sure that the Sublime package
UnitTestingis installed. - Navigate to a test file in
testsfolder that you want to run your tests for. - Open Package Control and type in
UnitTesting: Test Current Package. - The tests will run and a small output panel pops up showing that the tests are running.
For more information and guide on how to run tests, take a look at this README.md by randy3k. For examples on how to write tests for sublime plugin, take a look at this Repo by randy3k.
Please take a look at our CONTRIBUTING.md where we provide instructions on contributing to the repo and taking the plugin development further.
- Created the design and architecture of the project
- Implemented the logic to collect the data in background
- Implemented the code to generate the graphs to analyse the time spent. (Current Working Dashboard)
- Integrated the code with sublime text editor
- Unit tests
- Build and Packaging of the plugin
- The data generated will be sent to server.
- Local data analysis will be shifted to server based dashboard.
- Slack notification of weekly report to user will be sent through server.
- Leaderboard based on user's usage of files.
- Adding support for other editors such as visual code.
- Possible realtime analysis of the user's file.
