Time tracking you can host anywhere, built on Django. Full export support in multiple formats and easily extensible.
djangodockerhandcodedpythonself-hostedtime-trackingtimetracker
1# Sites
2
3Timestrap takes advantage of [Django's "sites" framework](https://docs.djangoproject.com/en/1.11/ref/contrib/sites/)
4to support running multiple Timestrap "sites" from a single instance of the
5application. This an optional enhancement, and the base Timestrap application
6will work fine as a single site without any advanced configuration.
7
8## Single Site
9
10Out of the box, Timestrap is a single site using the fake domain `time.strap`
11and name `Timestrap`. Both the name and the domain name are configurable on
12the admin.
13
14Any domain will fall back to the default site, but it is recommended to at
15least set the site domain setting be updated to match the actual site domain
16since emails will use this domain when sending.
17
18## Multiple Sites
19
20Timestrap supports setting up multiple sites with configurations options
21available on a per-site basis. This functionality may be useful if, for
22example, there is a need to separate departments or functional teams within a
23larger group of organization.
24
25Sites can be managed by any user with admin access and appropriate permissions:
26either `superuser` or the various `site` and `conf` permissions. Sites are
27based on domain and use two primary settings, `domain` and `name` in addition
28to the various configuration options available.
29
30### Data Sharing
31
32All Timestrap data will be related to either one or multiple sites.
33
34- **Clients** and **Tasks** can be related to *multiple* sites.
35- **Entries** can be related to a *single* site.
36
37Data with a single-site relationship will automatically be related to the site
38it was entered on. This settings can be changed from the admin site.
39
40Currently, multiple site relationships can only be controlled from the admin
41site. To use a Client or Task on multiple sites, it must be added to one
42site and then modified in the admin site to be related to additional sites.
43
44### Example: Big Project Builders, Inc.
45
46Big Project Builders, Inc. (BPB) uses Timestrap to keep track of its progress
47for various projects & clients. However, with many different teams a single
48Timestrap instance would have *a lot* of data and it may come difficulty for
49individual employees to keep track of progress. So BPB decides to break the
50instance in to multiple sites -
51
52- **timestrap.bpb.io** is the primary instance site, where admin superusers add
53the Clients and Projects that BPB is working on.
54- **design.timestrap.bpb.io** is used by BPB's designers to assign and track
55graphics and design work for projects.
56- **development.timestrap.bpb.io** is used by BPB's developers to assign and
57track project development.
58- **testing.timestrap.bpb.io** is used bu BPB's testing team to record time
59spent executing and reporting on project tests.