tutorbook

Web app that helps schools and nonprofits connect students with expert mentors and volunteer tutors.

OTHER License

Downloads
2.7K
Stars
59
Committers
7

Bot releases are hidden (Show)

tutorbook -

Published by nicholaschiang about 3 years ago

Feature Changes

  • Data now comes from a single PostgreSQL database which means:
    • Reduced load times when creating/updating/deleting meetings.
    • Everything is always up-to-date and in sync with the latest data.
    • Invalid phone #s, emails, and URLs cannot be saved.
    • Match and meeting IDs are now simply numbers.
    • Text-based searches now only filter a single field:
      • Search meetings by description;
      • Search matches by message;
      • Search users by name.
  • Admins can now filter by if a user is available or not.
  • Featured results are temporarily not supported.

Minor Changes

  • Feat(mail/meetings): reword meeting reminders: f9b7cdd2b705f9581b38b70bae43f11e653d7c7b
  • Feat(styles/theme): lighten first accent color: 9230cce63c5eb689188b9484694ba23d53bd9812
  • Feat(api): replace Firestore with Supabase: #228
  • Feat(api): replace Algolia with Supabase: #229
  • Refactor: remove unused Zoom integration: #230
  • Feat(lib/api/db): add more verbose logging: 17b43037743dd09802081cf3ec3cb5800ecb97cc
  • Feat(lib/api/error): log entire error stack: b575c53577a87b3100dcc2394d856544632d606a
  • Feat(users/search-bar): add "Available" filter chip: 46087e5962b4eea038734933093de3dd3055c0c8
  • Refactor(model): remove Algolia and Firestore types: #231
  • Feat: store not- tags in PostgreSQL: #232
  • Perf(lib/model): remove index to force separate imports: #234
  • Feat: replace Person with User: #233
  • Perf(pages/match): remove /api/people SWR fetch: 4b0910d76f4eed579e5dc2c84fafbce92c995ba6
  • Perf(calendar): remove usePeople hook SWR usage: 853bac671e3901ba1f18c47e1b34dfc2e4748c64
  • Perf(api/meetings/create): perform analytics async: e52e541ebbb940aaaa95088a74e73f90d985f455
  • Feat(api/db): add text search to meetings/matches: c58a93d8a9edeebfc03369bafc3cac8c85ae04f7
  • Feat: specify exactly which field is being searched: ccdbec8c4dbf9a4c9489cee53f90d2c1c137957b
  • Feat(calendar): open meeting links in a new tab: 87b75437303bc7317fcc72ee0824122d4a32700d
  • Wip(user/verifications): hide "Featured" switch for now: a1f51e3073373dbcd2c644c98228df909b45d318
  • Feat(calendar): show meeting description in dialog: fa3a7a84cbdf37e1f4e1da6140f705e3363c57a4
  • Feat(user/request-form): use message as meeting description: 23066efc825c9d210c4390f65c19da813cc93216

Patches

  • Perf: tree-shake by importing data models separately: #224
  • Fix(lib/mail/meetings): import missing Role type: c5a1250c191dfb0c76ff147ca36506812c5506f2
  • Chore(scripts/seed): switch to cookie based auth: 818d2b756fad4bb5c2f603f5e109102834bbd34b
  • Fix(lib/firebase/login): await hanging promises: b28aa7fc99988b1b4f5027de62a6dfb699d45a4b
  • Chore(scripts/migrate): slow down trigger.js script: be7492bbed3c288a63499b5e2fbb739f9270b8ee
  • Feat(db/setup.pgsql): cascade update for foreign keys: febcf32dafe1f2ffc58cf9d484faa1226364b40f
  • Chore(gitignore): use Supabase generated ignore: fdfb05f3d9fff1522701b078d6118036f8d78a3f
  • Fix(api/account): fallback to createUser if updateUser fails: fea540f41604ad8c377cb3588fd8b7f816fcc815
  • Fix(lib/api/db): properly handle Postgrest errors: 29bca314235cdebe2cb7fc35568ebf672a67008d
  • Fix(lib/api/db): specify onConflict for PostgreSQL upserts: cd1577a9bbeb2182f6a0d17ff0d9bb9088112133
  • Refactor(model/error): move APIError definition: b735829f07ce72418db499f1f9c02372f1b89bcd
  • Fix(scripts/migrate): properly set meeting org from match: 18d8f40e33d93580846bb3b997cf95cedf1c3187
  • Fix(lib/page): don't import server-side only logger: 780c6acf04eb3ff7f6cf6a6615fac48a8a050bf7
  • Fix(model): aggregated people col can be null: 93046d904ed9f40985c4a61fe89664d843d8fe3e
  • Fix(lib/api/db): expect error as array for no results: 9f2f5d5c1fe153ae6b4a8d5e76ea216048032cb8
  • Fix(db/setup.pgsql): remove trailing comma from user_tags enum: 2ccc9dd3237e2a6596502860c50578c24fee903e
  • Fix(api/db/user): getUser uses view_users table: 84ca845db44f412f5fdcaf342550036aa41cfc40
  • Chore(scripts/migrate): import phone package properly: 955be7d318d9f8e41a91096a7e457f173f0e608b
  • Fix(api/db): return relations after create/update: 30885f99ef267669f07fd4657405b05109e841db
  • Fix(recur-dialog): use dark mode colors: #238
  • Fix(api/db/match): paginate getMatches results: f5c5db989579c4b042387aab17aa1a0a490998ec
  • Fix(model): save roles after person-to-user convert: 9a825a2234bc6b9175736403da07b52745b333d5

Tests

  • Test: setup Cypress for PostgreSQL: #236

Documentation

  • Docs(db/setup.pgsql): add closing parenthesis: 8585c3107354634fccec5b8dd5f504582178ef9b

Dependencies

  • Deps: upgrade Supabase CLI to 0.5.0: 9bf897b056b816c5db0ac47eec6b5c0562ea7873
  • Deps: upgrade dependencies: #237

Credits

Huge thanks to @evanyang1 for helping!

tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(mail/meetings): update donation email text: 79ebba2da25a82f38764a3255b9c1675fb32a19b
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Chore: remove unused service worker: 0e9d23adec7b586ab6f77f7222cd23bcd039aa6c
  • Chore(aws): remove unused aws scripts: 70c2322e77b9fdfbd6d04e7694d54a0584fec6dc
  • Chore: remove unused next-images package: cfdfebf62933cf6a12e719abe0d2090dbcf39def
  • Fix: remove next-images image imports: 621ea722e57a57aa7e9683d33dfc6e974c21a09f
  • Feat(mail/meetings): remove book mention in donation emails: 3f8556c7d4581217019a0e8e9fec86e081860939
  • Fix(mail/meetings): only send donation emails to students: 1c9a4e6dc15701a998a9fb251de1d262166e0802

Documentation

  • Docs(README): add Supabase shout-out: eb33db4a118624b704a72456e9e9b521e9c58fae

Dependencies

  • Deps: remove unused dev deps: e29ef3a076b844c58fcbb6d38bb2f35e41166574
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Admins can now edit and vet themselves.
  • Parents can select from existing kids when booking.
  • Authentication errors should now be less frequent.

Minor Changes

  • Feat: add 'Snare Drums' and 'Mallets' subjects: 57b5960ce8b70702d616e08b5380eb9e1bd1560a
  • Fix(user/display): admins can edit their own data: 38b239740da7c2184839ab2ba54513675e3577cd
  • Feat(api/account): add Segment tracking: c8b6324934e4f81e45077e48aa86628c6cc31a9e
  • Fix(footer): remove broken footer links: #220
  • Feat: use session cookies for auth: #222
  • Feat(request-form): parents can select existing kids: #221

Patches

  • Wip(api/remind): add debug logging: df9b59edd01f8e882165fb99f21352c071ab4dc2
  • Fix(user): clicking back now works consistently: #219

Credits

Huge thanks to @evanyang1 for helping!

tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Users can now cancel meeting drags by clicking "Esc" (#198).
  • Students now receive donation emails after meetings (#204).
  • Volunteers now receive reminders to make meetings recurring (#163).
  • Admins can now show only parents in the users dashboard.
  • The calendar dialog now has recur "until" dates and smaller avatars.
  • New bookings must now be at least 3 days in advance (#197).

Minor Changes

  • Feat: specify that bio will be public info: 8c26943276df346f4dace92c8bf9da6c89403c37
  • Feat: add 24hr and 1hr meeting reminders: 8f9e5791463451a45ca5661a0a639680fbd002d1
  • Feat: add donation and make recurring reminders: 68d9a6ac0de25ce3a659e86b3b81d2d6e850f4d1
  • Feat(remind/make-recur): polish email wording: 53ec398f2a20a6d233d3416154d76a6db5b5c104
  • Chore(api): add debug logging for import: a83296447dcef43e62378480c29084678ea2fc2b
  • Feat(scripts/picktime): support recur and parents: 6f323b5378227ee3c6962089c1e29142088f13b3
  • Feat(api): add actual Winston logging: 63178c744ba4d651ba6f34ca1f3b238711b9ddfc
  • Feat(scripts): remove 9am-5pm default availabilities: a9f7709c372600b3c0fc8a22c11758d042ae4c2e
  • Feat(scripts/algolia): add parent tags to idx: d36c3ea94602d36a9c3de08da9678b7804b66dd8
  • Feat(calendar/dialog): shrink images to 48px: ed47ff293f37f7caf837f33bdacb034b295f50c4
  • Feat(calendar): show rrule until dates: 411ac48fe5d576e24b092485c53f306a7e6321a0
  • Feat(calendar): pressing 'Esc' cancels RND drag: cf2dbff4f9e3507ab2ddeb83f69256aa5ae42f01
  • Feat(calendar): wait for >10px mvmt before RND drag: b18a81af1cdc301a3fe23c80c835b444ae69f756
  • Feat: bookings must be at least 3 days in advance: db4ef50aacf25da3e9d095706ff9263064ab2b4b
  • Feat(api): only send availability w/in 3-30 days from now: 61b99643b731237941d70dea03450c6c7880adc6
  • Feat(user/edit): replace single w/ continuous updates: 2be345f1bd94f21164e29498ec21588a8dbaa7d9

Patches

  • Fix: add bio help text to user edit page: 6008010547c103119ed2e9c3c6f45deee248e85a
  • Fix(firebase/functions): ignore build dir: c40dc757222f73ab97086274535bb6b5091ae3e7
  • Fix: use user's name in bio help text: 18b905747ab88334e59f410d6417c4c6c4151a2e
  • Fix(remind): synchronize pubsub schedule w/ API: 91f88979fab1b446969a0db1d23cf2826fe141b8
  • Feat(firebase/functions): rename to just 'remind': f5104e47702dafc8b6536584ea388489465e2603
  • Fix(avatar): remove now unused image checks: db90a20200c2076d83593816602e201854feab74
  • Fix(pages/app): properly type 'APIError' response: 563a23e6b5a8b3564aa740233db58fbaa42fd38a
  • Feat(scripts): add Picktime data utilities: be8acbc93fca4cc99636fdab50819d222115ef2c
  • Fix(calendar): don't trigger drag when creating mtgs: 083ba67e3f5f52df4fa01244a708442bc466f356
  • Fix(calendar): hide RND when viewing item: 207346da430e5b6df0bae3363d625be1fa25095f
  • Ci: add CodeQL analysis for security: 554cee5df9b706d8ce7cda3dd21253c5d4153bc6

Tests

  • Test(students): remove flaky nprogress assertion: f5dc4847d6ca7df62d089f0567eb006e190f55d7
  • Test(users/id): users must book >3 days in advance: 72a92f707b7be2e0557c1c4d09d749a2f930c742
  • Test: remove redundant cy.intercept: 731395e94b937dac5596339ae40c15c540397892

Dependencies

  • Deps: add 'tiny-async-pool' for scripts: 488756a0760fc34f5bd0b16e78d35d66b6b6ed72
  • Deps: replace 'tiny-async-pool' with 'bottleneck': 77fde3442b44eb4237bacb02a14e9fc7214a10d8
  • Chore(deps): bump @grpc/grpc-js from 1.1.2 to 1.1.8 in /aws: 48dc3c5883efebd4d36315b2811b0e20a2283684
  • Chore(deps): bump lodash from 4.17.20 to 4.17.21 in /scripts/backups: 72589fbbce52425e76006096b6e6da3b21edf549
  • Chore(deps): bump ssri from 6.0.1 to 6.0.2 in /aws: 248d241419447005854c6a702351ba61678efc56
  • Deps: upgrade Cypress to 7.3.0: b61d78315a30fb874447fb076d9e5b2ebc07812b
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Students and admins can now filter volunteers by availability.
  • The search page now only shows volunteers who are available.
  • The redesigned user display page now shows volunteer time zones and collects org-required profile info from students.
  • Users now have full control over meeting links:
  • Admins can now share links to their filters on the users and calendar page.
  • Parents can now book and manage meetings for their children.
  • Meeting recurrence is now fully editable; no more limitations.
  • Meetings can now have more than two people.
  • The org analytics page now loads much faster.

Minor Changes

  • Feat(user/request-form): add required profile fields: 39bc651fc7dd10322a609715b020242fcbb15a43
  • Perf: only import Recharts modules we actually use: d3c29025419984cc66fb48ad380e0f77a5193a0d
  • Feat(locales/match3rd): replace 'send' with 'book': 51804bc70e3520d68f5e1d82427d01d75dce74b7
  • Feat(user/display): emulate Airbnb styling: 38ddc3486989346fa6f6ed0c4d1d3114c99888bb
  • Feat(user/display): make mobile responsive: 20449a61a1042c448f63be2377fcea6091c79a24
  • Feat: parents can book meetings for their kids: ecd0b02c540b2e54422a48c4b73fd7becc7079de
  • Feat(user/display): show volunteer time zone: 935b73895f246811b4edf044ce536a4d7a5a8d41
  • Refactor(api): refactor and add background imgs: f61c1852d8fceb3fbc5c9f282fa2094bcc3bc51e
  • Fix(user/display): use blurred avatar when background missing: 8237156ad295973d54b8cc28850578ad25adfba3
  • Wip(lib/utils/time): make default timeslot duration 60mins: 0a1c0ac4f8fb845d0e6f104d0276225eda38428a
  • Feat(calendar/dialog): support more than two people: bf11845e1e99bc8447edbf43978fcb66cbeaf3d2
  • Fix(locales/common): make ref placeholder shorter: 49cdb803232eb6c0aa25f95162e5c887d8a23d92
  • Feat: orgs can configure message placeholder: 0d86c94ab22af7adfbeecb2fe43fd41673caeb78
  • Feat: add account default meeting links: ec3d2c096ef765dc10187316c0dc989f00ffed6e
  • Wip(api/meetings): use account defaults to set venue: 56b8537ffa4e66122c21d349709d36318c3b131c
  • Feat(calendar/dialog): users can edit meeting links: 3a234c4fdc25298688f506a8203b180455325b9e
  • Wip(components/page): preconnect to custom Segment CDN: 545c387070c3db5f63ec70e7593874090e0cbb06
  • Fix: add parent roles to people tags: 985928bde86c941b70bc3a131686c28c24e06610
  • Fix(model): follow Material guidelines for date formats: ef1c1435cce2e644a54ba8e517a778c02040c271
  • Feat(search): add availability filters: 30ec251ce66e2d13bb866b851af2c199639d5c4a
  • Feat(users): add availability filters: febcbce4868416b332df46936d7e333ee587e201
  • Feat: manage UsersQuery state using URL query: 979d421badb9c4ff521c8d1fb19da5cafb35888c
  • Feat: manage MeetingsQuery with URL params: 74265904c92f78d8f1a79cbb7c4b43d7e8f905b1
  • Feat(public/favicon): add circular cropable img: 6f94fe7e3fd81a3bb06cf294d060af3b890665be
  • Ci: add action to only run build: b449a93dfbff9007f96b7b9aa3fa4ac9ded34dd6
  • Refactor(scripts): move 'firebase' to 'utils' dir: bbee639916c1b8ecd771c5a248367109585a19b8
  • Feat(user/display): show contact info to admins: 1f1f29f5a4610973d6d2d2067615fe1761eb41ab
  • Feat(lib/mail): use new SMS and email links: edae30a4e5c8b26b6f2ee1031b9dbe6608c7a5e9
  • Perf: include Segment snippet directly: fbbc45b9b5d5e638ec748ee1d2284207e6cd07a0
  • Perf: use recommended Google Fonts workflow: 638361d8b1313eeb6baa76746eb3e6b474f20394
  • Refactor: remove styled jsx uses: 43de0281925ddb6e69a261348c8a4142a9f26afa
  • Feat(calendar/dialog): shrink avatars to 40px: 874a76f049db3b87dd1ba2cd35be666322269493
  • Feat(mail/meetings): support parent bookings for kids: 42deb20f8bb7a8b0c8f9a09ddeaff05fc9c6c3ea
  • Feat(recur-select): user can disable recur: d8550be7aa4633c20b5b17610b81f6e081025ab8
  • Feat(calendar/dialog): show recur in display page: 5908de05b793bca1d0224b74992a12e7e73ced07
  • Feat(calendar/recur-dialog): clicking anywhere on label selects radio: 90aa2c668d31b9aa5c4d4f369cdd5e69e5491330
  • Chore(picktime.js): import as recurring meetings: 60440d96eb05b736a19c307b6c72ffbefc7e437c
  • Feat(avatar): use genderless fallback photo: c3c3164201196b37849bc40348fefdf23839ca8a
  • Perf(next.config.js): enable Webpack 5: a1d37118ff766e75e19b77d006b72bc3d6555561
  • Perf(analytics): dynamically import Recharts modules: 4fcb2d80fe50948c0d3ce2d85157ca9c88abb5c9
  • Chore(env): remove redundant 'NODE_ENV' vars: e75b47043388bec4d72f12b4d98768a2ccef1f94
  • Wip: replace material icons font with SVGs: aacc659e552a6c78e497958a7238a6b0c2e4060d
  • Perf: replace icon fonts with SVGs: #155
  • Fix(locales/common): add 'parent' role: bc363095dd3a47a81df756df9dabc60ded2ff634
  • Feat(calendar/dialog): enlarge people avatars: 66f9e594b767d7ccc3abcd9841b2ecdb05b9dc23
  • Feat(mail/components): fallback to genderless avatar: eef46484e9b979371dea6eadfa02775955003720
  • Feat(matches): sync query with URL params: 86e9b45349452595f9e68485869590d4a5f68aa1
  • Fix(pages/search): only use nprogress for page loading: b3c516fd2ad0168623906a17502d1e912c82c5e7
  • Wip(model/user): capitalize first and last name: ffa8630edfb600370586791a4d1ec9854a0f3f0a
  • Wip: show users who are available at least once: 1d7d16dc52bf5c283a491e6a0c738877d2085fcb
  • Feat: properly filter users by availability: 6918faff04f5db036351e9bf832c1c8a90f7a583
  • Perf: treeshaking for models in meeting: 8a90a5ff66e0e1d77e0bb1effa8346415955f070
  • Feat: restore Picktime link support: 9981804cf9b3ad14a046dd426804e4057233556a

Patches

  • Fix(select/select-hint): fallback tooltip shows children: 882918f3e7d17daeeef64a5edda26bb0a12524f9
  • Fix(time-select): show time in user's time zone: 30a58f665e81af9e19440e7b6b22612eb19554fc
  • Fix(model): add parent role and remove handle prop: fc0c02eef243ddf2d3fc9a306fc7223d609f7fc5
  • Fix(lib/api/global.d.ts): update 'await-to-js' types: 6461733eeef5d7db2e6102a70f7915a3ac561031
  • Chore(babel.config.js): remove Recharts plugin for now: fcbc030c1448b1875f7476d9afcb380202d144df
  • Fix(components/home): update automatic org descriptions: #149
  • Refactor(components/home): use 'cn' for classname concatenation: a75e93d2e4fce2ced5fc9e8190332c45f261df47
  • Fix(user/display): add empty alt attr to backdrop: e950087de9e822e91e744838b7f2d6c4a2002261
  • Fix(model/user): set default time zone to PST: adf59302423f769203c16e089e95c69b00221168
  • Fix(pages/users/id): show subjects from static props: f806b10adc552881fce25c56369278a32693a4d6
  • Fix(user/display): don't show empty data fields: 2a017f5370e2ea40086a7a20b2995743846cb3fe
  • Fix(model/venue): remove unused venue fields: 07015bcb7a352b3f89ec61f68ce365b137dad2a2
  • Chore(babel.config.js): instrument code during development: 6b229821092c7449e043cca236c6722e35f7c9f7
  • Wip(api/get/users): add note on availability filters: 091386d50f64b6c5712e64efb3554735b7fb947d
  • Fix(settings/signup): add React keys to configs: 5d18cb638e62d4ad095af60ec81269ebe6a4e1f8
  • Fix(lib/api/algolia): wait for operations during dev: 47a08289a328d96caed01d4915e0df496e4a099f
  • Fix(hooks/page): wait for URL params before redirect: 58fb1750950fd8db2a8e07e721170e213966db35
  • Fix(api/get/meeting-venue): remove console.log calls: 70439eb2305c588665e40d9e684d2435ef0c6a07
  • Fix(model): don't add 'tags' prop to search idx: c188cb89df03b7bd4eee257dd8585d4c70e6d27c
  • Chore(package.json): restore color to Cypress output: a6f91d1a80cb909063ca0f92a05dec09832dfdea
  • Chore(picktime.js): replace replace with replaceAll: #153
  • Chore(picktime.js): replace map with forEach: #152
  • Fix(api/account): update user tags: 1a2feb1dc5f2dabc63b7c08ccbcbbc522e16e759
  • Fix(matches/row): use match org in URL: 23b60cd20f9ceda254e7156301c97e6bb21a9d95
  • Fix(api/account): merge all user data: 39dee1d494023bee9cb8d4a121e7d1f1571f4038
  • Chore(scripts/seed): use unique Algolia prefix: 740e505ca2649c2cda5729bb7714e76b91c918d0
  • Refactor(home): use new email link utility: fe3acc81ee1b72023d5a02e1985594551d5739e2
  • Fix: don't override default page query state: cfd822a76c229c08213479a2845d6b35f4f6bbb5
  • Refactor(hooks/social-props): reuse constructor type: c73d8ecdfa52eacdedc4bca1642d493cb97be3d6
  • Fix(page): set Segment snippet script directly: f900aabf081b1a6be4f16228fac9731535eff087
  • Fix(footer/group): use label as input ID: 04de9ea0541e6728ea98709b82f3dd00866f52e2
  • Fix: prevent tabnabbing when opening new tabs: 01bc98e03120d3636c0a23ce790f12f06e19ab78
  • Fix(api/people): untruncate child data for parents: e1991bb7c0e37597c1ac92f4d8c422e2c52e9f64
  • Fix(api/users): skip signup emails for child accounts: 0667868bab29fdc99cd4c9441e100ee376509dff
  • Fix(mail): only send to people with emails: d1299c4d8f84fd124e9c0d4736c41a27bd31a5fc
  • Fix(mail/meetings): omit names of people without emails: c5b13954a92063e0aa785edc93d2ab3f2fbfd161
  • Fix(styles/theme): use unitless values for Sass color hue: 8f174d2b5d73f237e63ef2bb0f7bbe31c04f8c76
  • Refactor(api/get/person): use 'Array#find' instead: 5b71569940162c51935e2fba93c197387faa057d
  • Fix(match/display): add SVG badge icons: 521f42c8689f9d9fc6c3b979d99d923d9381f2e4
  • Chore: remove unused 'raw-loader' config: 9c40da7f00a7073f011b820202576e1cab27a54e
  • Fix(nprogress): don't show for shallow navigation: 652f39e335ca6bbe0fd5b11a05cbef137883a6e5
  • Fix(api/users): stop sending emails to nobody: 3f26e381feafc479765ea20d75a95388c269c17a
  • Fix(mail/meetings): only include recipients in greeting: dcfc391e79eec3db2497a9585308eca042d41ba9
  • Fix(availability-select): center timeslot icon btn: 86de48c4b685d01308a944d668c9ba52e83f0e32
  • Fix(mail/components): don't include empty sections: 1faa075800b90053a7a8555a57ed10f324bd3802
  • Fix(components/user): prevent render loops: e9d2786e8b86412dde6f1927e7806185a7a7c5d4
  • Fix(time-select): center new SVG chevron icons: 4afdbc9617b05a31c73aa2c64de978235241c102
  • Chore: add Algolia index cleanup script: 11d982904a72791ef7c9569e57d6df1679853975
  • Fix: exclude default params from URL: 58c4c0078b9e31bd78a663c8592eaf054fc04985
  • Fix(pages/document): workaround for Firefox FOUC: 5c14492c9c5283b7b2c024bf5bb05e15a32f3ad3

Tests

  • Test: update for new user display page: eb09a2804fb75079e007d777e263343d621ba1cb
  • Test: distinguish btwn loading and fallback state: cbc5b8ba5195d484d3ca61fb08e7507c3beafbc5
  • Test(users/id): dynamically set selected hrs: 4d547f8f632aae1c40341fcafa95b9585aa8afa3
  • Test(fixtures): add 'venue' account prop: 32aa5134a3b9a12aefab043aeaa1dfd9ec672271
  • Test: update for new time formats: fa48e84cfda2a2bcf12606f85a02cf45ecc5fb87
  • Ci: skip Firefox testing due to service worker bug: 2cb3a3797ef0db03a1a677205c1b7c1e9c0ead5d
  • Test(users/id): update time string assertions: 517091537452a082dddb6059818aacd737c35886
  • Ci: properly set Percy parallel nonce: 3eb28045c93078ebd8b220478af7142ece40baf8
  • Test(students): don't assert after page redirect: 0b704b999ca3994a362b03f8b390f775c448ace8
  • Test(org/users): expand viewport for debugging: ab57da2804b01833f41bd645730447ea6b6313e8
  • Test(org/users): restore normal viewport: 56928465f0ffe63c97c9b71b837f1de194c70b49
  • Test(users/id): update date button assertions: d39ddbf2e658a29cff1b72f17006634f1969b491
  • Test(org/users): assert results aren't loading: 45402117dd1207285748757d8d17a52cd598c615
  • Test(students): wait for cards to load: 91c6bfd081eac0041ea33dd4dfedc04efe24bd0b
  • Test(org/users): fix results don't exist assertion: a432692ae553ed6efaccbf3da197d70c1972d11b
  • Test(index): add org landing page tests: ce5d77696a116c55b0bc57e9ab4f4764391dddd5
  • Ci: rename 'Integration Tests' to 'Test': dd199726e83bf44db60ded31ddf99b4ff52e5e23
  • Test: replace icon dependent selectors: e44604b64fb0f7be3e6de4bbb9b15029911d175b
  • Test(users/id): handle when today is last of month: 40d4206a9b875abce2930a58158dc7e7c1c64a5f
  • Test: update paragraph selectors for Next.js 10.1: 32a91daf77538990412325d5109a6b62333e3260
  • Test(search): wait for result fallback state: a282088bf5694e9fca000ad785eda91a51830aca
  • Test(org/users): don't click snackbar dismiss btn: 520828688855cca1d7a131f6300eb3cf6c5c10e5
  • Test(org/users): correct grammar in test title: d6a5666913d9b812111a6a8206e9e0df677170b4
  • Test(org/search): add generous wait for results: 828cb30996427107455800e51a46a6658a31d64d
  • Test(fixtures): add availability to admin: e0de21e1231cf8d03e69b7e547b5bd08384eb883

Documentation

  • Docs(README): add commit message format info: 21f2b4591aea7234e8009bd01cc8d44c2c0b3d55
  • Docs(README): badge actually shows build status: 8f3df3b0675c24b6e8bae36b9dd7d53968ecde15
  • Docs(README): reorder and style badges: 47f988b21ad0690025d02043341bed856030a0df

Dependencies

  • Deps: upgrade TypeScript to 4.2.3: 1bbb86a558d4f878914c1856113a153e9cc50587
  • Deps: upgrade '@percy/cypress' to 2.3.4: 0cffe009b0e24c09c50fe5304d625d37d1f59515
  • Deps: upgrade all dependencies: 7671af9885b323f0e1a9e6a0b0c11f7e62bbfd76
  • Chore: update Husky pre-commit hooks: 539b4e3d8cc3a46b4187af70475bc24a05eb3740
  • Chore: update Prettier code styling: 57c32cc2afc6db237ccdb0ff60f14f173e7c9d05
  • Deps: lock in '[email protected]' to avoid bugs: f41d1254bb1e34038da3e4bbcb1694a217eb6dda
  • Deps: bump y18n from 4.0.0 to 4.0.1 in /aws: #154
  • Deps: upgrade Next.js to 10.1.2: 452cd775d7ccc4bfcbe5044571b324f82388e3c9
  • Deps: downgrade Firebase CLI to fix Vercel: ab76efb6e0972c8e7751349ab2b91a138be66f16

Credits

Huge thanks to @evanyang1 and @hodovani for helping!

tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(pages/500): add custom static 500 error page: 78fd420baf9e625b7193cf7c946cd9bdd299b5f0
  • Fix(package.json): remove '--inspect' due to Next.js bug: 7214e313cdaba443a29c1cdf616933b1507f45f3
  • Chore(components): add needed 'data-cy' attrs: 9f30cd78fc8518c4a5a49fe762a1423ccdf6e6e6
  • Fix(api/routes/users/create): fix bug when seeding data: a98c57961d60e7d867c6b5e798bc4682ce4c762b
  • Fix(utils/analytics): don't add 'not-' tags to db: d5477c6cf7f36ee1d6e6613e85e851a1af6b69d2
  • Fix(locales/common): make nav labels lowercase: 79aef390d1ca3291b5f5b0e7f4bb67e38184f0ae
  • Refactor(utils): rename 'utils' dir to 'scripts': e97c9934c315d1c5f717700d25d663f907955ef8
  • Chore: create Node.js data seeding script: d923c3653a9a2f26c4f81e0836dae6e66ee0b44a
  • Fix(api): don't log expected 401 errors: 5c9df64d4a5ef282393ac6cf6c3218b82c3dc374
  • Fix(api/search): make filter errors more specific: e5aea6481b34ebca1210d6a16cc4339250c03ce2
  • Fix: replace 'useLayoutEffect' with 'useEffect': 38bbe4e0c5de37961bd29f1d08c7d05fd859ffbd
  • Fix(calendar/dialog): sync subject options btwn pgs: 5dec07a09b53c2f33e9a690099201aa07d72f49a
  • Fix(styles/material): add 'mdc-chip__icon' hover styling: 45788a7fa00a85570f44fbe4761b9f2e623ebe03

Tests

  • Fix(tests): ensure all tests are passing: ef38acf45e340348c87d73dcc4eb742a19bd3758
  • Fix(tests): remove empty test files: 503a837ec764e061ffabbd596eaef41f6e6bcca1
  • Fix(tests/profile): only clear 'input' element: 0dcc1235913d95ae0d9778ec36edfd8ca1ca4ee5
  • Fix(tests): add temp fixes and todo comments: 7701e9c2757641c943388b9fc0d0273fe1063e3b
  • Fix(ci): add remind token and Segment API key: 49238a1759a599c449cb012b068db722520ce0d1
  • Fix(ci): run all tests before failing workflow: a4c5eb1e510a261a65af82735884003f3d104d58
  • Fix(ci): always collect codecov even if tests fail: d164dd61d02947f2c6ab97a5630e68c641bfaeaa
  • Fix(tests): don't override predefined intercepts: 94c52adc34858056acb405140b68f9ef2edbc0c3
  • Fix(tests/profile): polish flaky snackbar assertions: a9e4ff18651d3123cf000ab94744e1b01cce163e
  • Fix(tests/users): assert filter sheet open/closed: fcd9b85520b3bc5b063ad809d65dabf69b5d5b1e
  • Fix(tests/users/id): generate expected time btns dynamically: 7cf688338ea2f493cdda98c80604e4402e37501a
  • Fix: use unique Algolia index for each CI job: 72f84df443258ddfcb3dfb26e63e3723aff9c085
  • Fix(tests): set idx settings before tests: b29e9f6cfce2122e0dc4c050cc4b136a59b84dfe
  • Fix(ci): update 'PARALLEL_TOTAL' from 9 to 15: ea489e28097d4cdb5dae8de8a5fffe1758898d0e

Documentation

  • Chore(docs/org-logos): add PAUSD banners: 79e2957609eaaf3be475870068e5b4f595a64b5d
  • Docs(README): format badges and banner image: e9d1498f7b9fef9d2dd384ca396bc85c22530943
  • Docs(README): remove branching workflow docs: 0660e55ebbde8c42e76dfef2a01d5853c13b789a

Dependencies

  • Chore(deps): upgrade Cypress to 6.7.1: 58e7bd09efb8a00c6b62edb92298077c903e6491
  • Chore(deps): upgrade Next.js to 10.0.9: cd03b5fb12497f2734a027913749274c72b049ca
  • Chore(deps): upgrade 'await-to-js' to 3.0.0: 940a96693c6e0de5962cf45a47d4d65d0ee51ec4
  • Chore(deps): upgrade Cypress to 6.8.0: 14c35902cd707910d1c8559f963ddbb0075c3db1
  • Chore(deps): remove unusable 'ts-node': c4841dcf37d0a1e8f7b9713a84ce438167159e40
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(model/query/meetings): add tags to URL conversion: 3bf5ae3c87e0ff661978793086821a07ebd00f38
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Admins can now see analytics (e.g. "Total Volunteers") from the org overview page.
  • Admins can now filter by tags, answering questions like: "Who isn't matched? Why?"

Minor Changes

  • Feat(navigation): replace home/search with overview link: f170bdd19a5ee4046daf47acd8b91c09c8438a70
  • Wip(model): save analytics totals based on tags: 8e89c176ce70bd76e384b4ab303e44bd60c26692
  • Feat(api/routes): track Segment events server-side: c6ed8e2fbc99df330702f205571d65fca5163f87
  • Wip(api): add org analytics: 40329de75a3a5a81ae6bb13bf11eca3d67f143c6
  • Wip(api/orgs/analytics): create analytics endpoint: 75afc77741894135741336e0b319c468bac1add4
  • Wip(overview): use new analytics endpoint: d0c440f9ed5170890357e6d8d8e133e21bb79555
  • Fix: add tag conversion to data models: ccf3e7bb1c05c88ba1b17f522b8df7d8c46b9ef4
  • Chore(utils): add analytics import script: af5adffeac1135bd2d186e45b4f08bf464ce3d15
  • Wip(api/routes): update meeting and match tags: 9e959b522c71d5e4e15e466266317037b23ba554
  • Wip(api): update user tags when meetings/matches changed: 5a2539aca7f3491b00f8556ed8ab49d285e5c189
  • Feat: reuse SearchSelect to create TagSelect component: c1f334cf63b86db40ce3f0804ea44587693e2970
  • Feat(components/users): use new TagSelect component: dda92c56a166e6a2d6d810371add13425381d039
  • Feat(calendar): add meeting tag filters: d1187bc7cd76d8e82ab570c440140eb3ab23b59a
  • Feat(analytics): show nice fallback state: d24f9107e7a5e95cef98716c47d819494fa6a5df

Patches

  • Fix: remove babel-plugin-recharts until v2 support: 300c45efc0c432809e84c0334d1e075dbd8d48aa
  • Fix: use accents2 for header bottom border: 955d695d9eea31af22218f725153e5b690864d06
  • Fix(matches): remove double top border when empty: 08bdd96b88e393c69ce8c8b80d015362fbde4269
  • Fix(styles/theme): use accents2 for mdc-data-table: 9dddc5640adb9f24abf3d9e6fc1d0a585c7afc82
  • Chore: remove unused profile/settings styles: c51b64cc0e4bd4436a980b715abb970595fc4169
  • Wip(model): add 'toSegment' conversion methods: 2bbfabe48fc60379131cde7a3b0946e4cce5e2d3
  • Fix(model/person): remove unused 'parent' role: 65a91cb366b6b2188ed77b62bcd95091f418ee26
  • Fix(model/analytics): use roles as property keys: 96769749e9b717f9d0cd9b86a4f7fa60f8ff1dcb
  • Fix(api): index tags as '_tags' by default: 8f8288b7ad3832fc6aa8fbac02519254fb02bc97
  • Chore(mail/campaigns): update 'SEGMENT_KEY' to 'SEGMENT_WRITE_KEY': 60cf206a7c7c54fa4dac0073f1d759f1bffbb110
  • Fix(hooks/people): only fetch when match.id present: 6f19a5e4c6db9fc29e9f23cd7f19e3191a5f08de
  • Fix(pages/api/analytics): handle cases when vals are 0: fc52da7776922b74197465fcb0b80dcdd145eee5
  • Fix(components/users): use new 'UserHitTag' type: 894bb9097c1de753667edd4213f41dddc96b6f64
  • Fix(tests): add tags to Cypress fixtures: f74cd51f08e80c57d3cc805ec5cf3b167dd5f517
  • Chore(model/person): rename 'isPerson' param: ea04ad24d4791bb48ec2d404ad2dc595c2096d13
  • Fix(analytics): use 'date' property instead of 'created': 9b0e2aa442aef58b2572ff0b7dceb99d8643029e
  • Fix(components/analytics): scale x-axis w/ time: 993c453af1df5b2b583ab1b6b1286dbc8f420245
  • Fix(analytics): round percent change to one decimal: cca2a9eb2dd655512976efdd3618074924df930c
  • Fix(components/analytics): add '+' sign to positive percents: a23043b67e340cb1ccb848f138bdccede344da67
  • Fix: properly add 'not-' inverse tags: 139e601a43efb028e83a82fbd0c95862a7736d26
  • Chore(api/routes): add note about user tag deletion: 62ee336d8f06affca3c3a5729ebb15e428c153a7
  • Chore(styles/theme): use color functions for triads: a26cc7b39b5c38cc6c2838c5b93c63858724a1e6
  • Chore(utils/algolia): add tags index: 9af173ddbbad73d0ea0bb6ae36a89a59333952e3
  • Fix(calendar/filter-sheet): remove unused styling: cd33827a2d796f635ed4230ecc0afb193d08cb3b
  • Chore(utils/algolia): standardize index CSVs: fd5eae372b556a0088a6ecfebd1520dc48ccdb7e
  • Chore(ref-select): remove unused component: eeb11c880f0923a3503b4999346530a57e483467
  • Fix(locales/common): add 'no tags' translation: 967d7f2e38e96bcea2d6032c7fb313e65ee4290c
  • Fix(lib/api/analytics): set nums when user leaves/joins org: 6751ca30f47733eca8c7711cc7fd7559ab8503fd
  • Fix: restrict TagSelect options: 04b2bcb8b4ead141a795f2d44f537fb3aabed7ae
  • Fix(time-select): don't let time buttons text wrap: 881100d0d57700a39fe1aebb0f11ec674d2cd267

Documentation

  • Docs(README): describe in-app analytics: df5b1281076cdad4e1ae975664b9cd5ba115b408
  • Docs(model/README): remove outdated specs: bd89f17c1c6aacdc09a9998faaa83dca895d9eb4
  • Docs(README): add tags descriptions: 54954c30c4a751a2e86caee9277cf88407ded552

Dependencies

  • Chore(deps): add recharts for analytics visualizations: ab974b1d153d1fe940a17126e3245fa2201e0148
  • Chore(deps): upgrade server-side Segment analytics lib: e34fd278bd26392fb82d37a3a990cac9feb93d70
  • Chore(deps): install extraneous deps: d15b270d39b91e20d7eb49496a9f4d54af37a180
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(public/segment.js): use 'segment.tutorbook.org' CDN proxy: f17f3247b03842cc08edc4dc81cf3ee25b8b6e08
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(api/account): properly clone data models: 3327112e577b5e31eaccac62546c688c30210eea
  • Fix(user/display): add 100% width styling to button: bffedeb7b9ecb84bb17c5a7add2d64b0c53620e9
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(user/display): track Picktime link clicks: d965bfb2f014383ca8671aed7005dc7c0ad459c7
  • Fix(pages/app): merge time zone w/ existing account: 9499b1b5875d9c09456ea06616e4a20a8fc17b6d
  • Chore(pages/api/account): run updates in parallel: d22f590e406d5dcbaead60936cd6d0096f73d394
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Updates to profiles, users, and settings now feel much faster.

Patches

  • Fix(availability-select): sync with controlled value: d73883e7ca6f031832af4f354bd7e8e790047541
  • Fix: show snackbars when continuously updating: f11b2e35979694c6b7dcba1d3f2f7fa09aaecffc
  • Fix(settings): don't update remote with initial data: 0c4439a66d1ff4bedb2aac3cf7517a2bb84f9ae9
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Users now have the option to delete this, future, or all (recurring) meetings.
  • Users now receive 24-hour meeting reminder emails.
  • Emails now show times in the recipient's local time zone.

Minor Changes

  • Feat: option to delete this, future, or all meetings: bcb55632515fca2b3c0783cca69f1f6a7ff60739
  • Feat: use user's time zone in email notifications: 47c67a6146e8cdf63d61d0524f28ac42a7d40186
  • Feat: send 24 hr meeting reminders: 33a52130c9513bae6a9f5aaa174a9bb450ffaea7

Patches

  • Fix: add ASL as language option: 09a5b84486e4b6e62bf9dda2e4d6ad3114f17139
  • Chore(pages/api/update-meetings): remove unused endpoint: f7679f9d99a81a4023e0af1d8806b1cfc7218e9a
  • Fix(mail): add time zone to meeting deletion emails: 52fdd4b6e10ac33c8f1f088b19f38a9ed0e2e0c8
  • Fix(model/timeslot): fallback to PST when time zone empty: f1c16530cdf7880dd9b3897525856ae09e8b286d
  • Fix(tests): add time zone to user fixtures: 28fc601842244be427b1b9dc199837bd7a525de2
  • Chore(mail/meetings): update reminder text for clarity: 940a3b2c66aaec698bfe251aa43b79a699b2f06b
  • Chore(gitignore): ignore 'pages/mail' email preview: e8d44592a641ac97680fdf438f27d406d6e8580e
  • Fix(pages/app): send user time zone to back-end: b050aad02dba593a3542d43d046d6670abe5606b
  • Fix(pages/api/account): add reference and timezone to merge: c5de4aed9cc4c2d3c882634d711bef59466273e0
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Users can now create and edit recurring (daily, weekly, biweekly, or monthly) meetings.
  • Users now receive notification emails when meetings are deleted (i.e. canceled).
  • Meeting update and delete emails now show the meeting's description instead of the match message.
  • Meeting notes are now consistently referred to as meeting descriptions.

Minor Changes

  • Feat(model): add full recur rule support: ba525435207660acd5af317adaf690257b338756
  • Feat(api): calculate last meeting time server-side: 69126afa7e66f1d43513903319e2341230ecc333
  • Feat(api): fetch and generate recurring meetings: d9cbf22495d6be1346934d788472f361361c29a3
  • Wip(calendar): add recur support to front-end: 2ea33e6daaa2e75411bb8b9540fa0d30a85c9487
  • Wip: import hooks and data models individually: 7617ea4d59e96da3e7502ab451f720385310a4a2
  • Fix(styles/global): restore regular page overflow: 394ccae268a35f98718baf600052e13a54d24fb5
  • Wip(github/workflows): add integration tests: 009d2b96f22f3d858468e1f490df7a26a3429083
  • Chore(travis.yml): move from TravisCI to GitHub Actions: 96b5fd636a4b2ccfe6c02c119243aac019f4c8d9
  • Wip(calendar): single state for active meeting: 8fcb59b2e927c7233ce3be6f70bdb0e639bba169
  • Fix: remove unused global snackbar queue: 26f0a336d8fd68fb6d1cb6e652d3e6216cc40ab4
  • Feat(calendar): restore delete functionality: bcc5763327b1a6e47aac6501113dd47af7d58853
  • Wip(calendar): add recur action select: b6203ecd19d9a459082b5571e71829c1d6fc4319
  • Wip(api): add recurring meeting update options: e605dd3a0bde7441f1f75a3379ec5c1b77716654
  • Wip(calendar): add delete action options: 728eb5b08001e40c572ce87fb2f95fb20a2938ae
  • Feat(mail): add recur to meeting emails: 92fa8adbbc299f75f3f3dc5dada5ed2f59415b55
  • Refactor: rename meeting notes 'description': 5cd5ef8f1a233e2953eaf99bf931e2b9308572f5
  • Feat(calendar): use match message as default meeting description: 153ad47fda8cf1803c8702113ee8df35bd26a59c
  • Feat(mail): show meeting description in emails: 9d3ff7ad55225c20ba024ad3f534d1d6c3988522
  • Feat: add meeting deletion emails: 82764e6cc4ad56ff762a12d88bce7db09044602c

Patches

  • Fix(styles/material): add mdc-select coloring: 1b74ca1f67a2b9ba508aabe50f945c6a86cf5f3b
  • Fix(api): wait for Algolia meeting operations: 3a0366fca34f09fcd2d7e6c37018c9a2813889cd
  • Fix: exclude meeting instance date from parent rrule: 445d1c41419b7e181541e37ac25b54e05a1378ec
  • Fix(hooks/single): pass 'hasBeenUpdated' to local callback: 1863d809b568098be9fade95f089f0d5ac872ed1
  • Fix(api/global.d.ts): add 'await-to-js' type defs: 767c1f26b6b1ec3ae184c7f5d4f8b97acda157c0
  • Refactor: move i18n utils that use Algolia: 6d577f2a72712dea0babd531dd6db7dc05136474
  • Fix(model/timeslot): make 'recur' property optional: 4dde8f8a9639263f0aca06af2047925206363741
  • Fix(api/create): ignore 'id' when creating docs: d1be62811cf7def32a135d2d1f8eb7dd24b4da26
  • Refactor(calendar): move meeting placement logic: 86ac6cb1afbe2c1f11f720b3e6569c06e97835f0
  • Refactor(calendar): move dialogs from WeeklyDisplay to Calendar: 4987c62d875f6378ba954144be735d77f55eaa76
  • Wip(calendar): use dialog pages directly: ef3ef356dcd76e8ae54b8adf383e72d707b6f435
  • Refactor(calendar/dialogs): move to 'dialog' directory: 374ae3b27356f7d47ee6c4ea83c649e3abe62479
  • Fix(calendar/dialog): ensure fixed width and height: b34e3c1bf4cf7a07e6383e51820e4a0a9e5253fb
  • Fix(hooks/click-outside): memoize click outside props: 7f86d5451d434408c525de67cf9669b158e36395
  • Fix(calendar): mutatedIds uses IDs sent to API: 2dc3f60dd30fb5c596592090281632ae18900fa9
  • Fix(api/update/meeting-doc): use 'meetings' collection: b7abca9e620246a3c5b92197432b606298b56ba2
  • Fix(api): run delete operations in parallel: cd8b437b0f7aae965c6e72c8f5a83978c3a8d292
  • Wip(calendar): only delete all meetings for now: 875c4c4a5bf3afb30c2ef2234588c625c62682af
  • Wip(utils): add purge org utils: 57addcd9a0ba17ca866fa1705f6b7edfeb06ebff
  • Fix(mail): replace 'mentoring meeting' with just 'meeting': aa8c55e514493fbc4a786ff4dc37ca8f5ca4f7ed
  • Fix(mail/meeting): drop the 'just' for clarity: 4b500d0b6393942ecf381dde0e0bac6a26be845f
  • Fix(mail): remove profile small print from meeting update emails: 79289bc9cf1784aa9abbc6069a823282db83a97a
  • Fix(mail): pair 'this' with noun for clarity: 04a6b7eb168005f5a3127eb8fc8efd5ff470f937

Documentation

  • Docs(ROADMAP): remove outdated roadmap: e76b94303c3a001e96ca504504a94b9ecefe72ab
  • Chore(roboticsforall.md): remove old notes: 4ff416b81cf614fbcf2be072101d8805c1565b99
  • Fix(LICENSE): replace 'COVID Tutoring' with TB: be6ba5539ca8cb3d8670324e294a266e0e12cf48
  • Docs(README): use GitHub Actions for build status: f832a46a571f6a92c779f990d6b066cf24ee58c7
  • Docs(README): discuss recurrence implementation: fc40e801198a5e910a9f89e56f14b76168878c4d

Dependencies

  • Chore(deps): add rrule for recurring meetings: c8b34bfae37f74397c9dbeddacc61bc03b4519e3
  • Chore(deps): add 'wait-on' as dev dep: e0a68efd65d6f9c751238e4576fb2a7fdd505a47
  • Fix(deps): remove conflicting 'styled-jsx' dep: 98a9783a2d0578d15174252b5b55f115b2bc0361
  • Chore(deps): upgrade Next.js to 10.0.8: a85034f39e235b2b7662ee22143fac04cecdc382
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix: replace 'tutorbook.app' with 'tutorbook.org': 4d084703c51cd51d9262f36fb2051b03b6ed6870
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(locales/common): include role i18n: da7660e9eccbf679abc9eaea2007ef7b1d6b852c
  • Fix(footer): update copyright to 2021: aded10ed70a0bb4064b50b2f67767b384eac7550
tutorbook -

Published by nicholaschiang over 3 years ago

Feature Changes

  • Admins can now filter users by role (i.e. mentors, mentees, tutors, or tutees).

Minor Changes

  • Feat(pages/users): add user type filters: c2e26d154422333a25e89c7c966fe8464448f28e
  • Feat(api): add user type tags from back-end: 2b68dd9cccbe30e18bdbde3ce0b8b48941abd8be
  • Wip: add user role tags at index time: 55a7e8be607a8736eb4885fd9b13d23ce5b0ecf7

Patches

  • Fix: preload images above the fold: 8e40f10d7d02a967f65ae8d63d335356cd18a911
  • Fix(pages/users): add description and unique titles: 591940804be91d3002b6f957e1a011f3a4fa37c0
  • Docs(README): add 'help me' shout-out: aa1b95a337f2d2901fdeda8fcf72d98891d34141
  • Fix(user-select): use new UsersQuery data types: 1e6496c0f8510b8ccd525e63e568dc3030306cc9
  • Chore(utils): add general purpose update trigger: acdd982b62534a15dbc75d8c63183de811837212
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(matches): remove unused i18n subtitle: 1d71674380426c9d693889f59b7db6f0424c83ff
  • Fix(pages/index): update meta description and title: d43852e9ff9d4dc654bb586c626534d826209bd6
  • Fix(components/page): require title prop: 2bd606be31b1fdf68ba795b5cf91906827555b18
  • Feat(pages/students): update header and about content: 79ff180404d19d27e13e68f63309b262597e62ba
  • Fix(pages/login): add meta description: dce244fb48a388a33ef62c9006530ae679f9f309
  • Feat(robots.txt): prevent API and notifications from being crawled: d01d1e3c45848f44423c3c99cebe937bde01f086
  • Fix(pages/students): update hero text: 35a661b3fb5cf049fdee4aa2c67bf6bca0d68603
  • Feat(pages/[org]): add page descriptions: d77e1d9790260e2bb842df8ee5d8789e54713fba
  • Feat: add org links to footer: 82769968a6ba2e29825998e8c71b2d70d5b9ac08
  • Fix(pages/error): exclude SSR-only modules from getInitialProps: 0e73f252bec662795e5d9d2fb1cd955491a930e6
  • Fix(pages/index): optimize videos and images: 60b323b0965d66a8bd4285639c4948c57d9be7d9
  • Fix(pages/app): remove unnecessary Firebase init: d731c73e92ac12482a6ecf985beceb0044a21ff3
  • Fix(public/segment): replace 'async' with 'defer': 25028c7126c019668a5d19365b41f24bb4de4fa4
  • Fix(styles/global): text remains visible during webfont load: e7ec48bb494595e3c0aa3334c7409fc6295214eb
  • Fix(carousel): update loading styling: 0c4b56c3faaff4f65970f41c5ce4b06ee8cb33af
tutorbook -

Published by nicholaschiang over 3 years ago

Patches

  • Fix(lib/mail/meetings): replace 'new' with 'updated': b670869cf7897a77099f9b176271017e50f6ae25