/lemmeknow

LemmeKnow group activity planning website

Primary LanguageGoGNU Affero General Public License v3.0AGPL-3.0

LemmeKnow

Backend Frontend Terraform Living document

LemmeKnow is a group activity planning platform with an integrated calendar to show availability and an integrated polling system to help make decisions. It offers a centralized dashboard of who is attending an event, their status, and that of their assigned tasks.

Features

  • Interactive web-based dashboard
  • Calendar, shared between members, showing group activities and individual availabilities
  • Polls, for reaching a consensus based on individual preferences
  • Tasks, for assigning preparation steps in advance
  • Messaging system, for general discussion and coordination
  • Reminders, to increase the chance of attendance

Use case

LemmeKnow helps small groups, such as groups of students or friends, organize meetings or activities. Each member may express their time constraints, self-assign tasks, reach a consensus by creating a poll, and communicate via chat. As an activity approaches, members receive reminders and can check the confirmation status of other members.

Layout

Prerequisites

  1. Use a Linux or MacOS environment. Alternatively, be prepared for additional troubleshooting beyond what is described below.
  2. Install go v1.21 or higher (instructions).
  3. Install node v18 or higher (instructions).
  4. Install make (instructions). Alternatively, run the corresponding command(s) from each Makefile.
  5. Install zip (Ubuntu instructions, MacOS instructions). Alternatively, manually create any applicable zip archives.
  6. Optionally, for containerized testing, install Docker and then act (instructions).
  7. Optionally, for cloud deployment, install and configure AWS CLI and then Terraform (instructions).

Running

The first entry in each component's Makefile will run it locally, so simply type make in frontend/ and/or backend/.

By default, the fronted will host http://localhost:5173/ and the backend will host http://localhost:8080. If you run both, the backend will reverse-proxy the frontend, so navigate to the latter URL only.

Testing

Each Makefile includes a test step, so simply type make test in frontend/ and/or backend/.

Some tests, notably DynamoDB unit tests, have dependencies best suited for installation in a CI workflow or Docker container. To run all tests locally, run act (instructions) in this directory.

Building

Building is not necessary to run locally, but it is essential for cloud deployment.

Each Makefile includes a build step, so simply type make build in frontend/ and/or backend/. The frontend will build to frontend/build/* and the backend will build to backend/bin/bootstrap.zip

Deploying

After building both frontend and backend, you may deploy to the AWS cloud (instructions).