A household chore management and delegation app.
This app will allow users to create private groups and invite members to share in household chores and task management. Tasks may have due dates, comments or details, and the ability to be grabbed by a user and marked 'claimed' or 'complete'. Users may randomly assign an owner on task creation for those tasks that no-one likes to tackle. The group owner or "fleet commander" (the user that created the group) has the ability to remove users from the group. Users may send email invite to others to join their crew (currently disabled on Heroku. You will need to create a .env file and include your email credentials from which the invite will send)
The ability to send a task as a request to another user in the group. The ability to upload a photo avatar to more easily see who task owners are. Responsive design for a better layout on a tablet or computer as it's currently best viewed on mobile.
- clone or download a the project into a folder.
- run 'npm install'
- in one terminal run 'npm run server'
- in another terminal run 'npm run client'
the project will open in a new tab running on localhost:3000
Additional README details can be found here.
Before you get started, make sure you have the following software installed on your computer:
Create a new database called ships-in-the-night
and create the following tables:
CREATE TABLE "users"(
"id" SERIAL PRIMARY KEY,
"username" VARCHAR (25) unique not null,
"firstname" VARCHAR (25),
"groupname" VARCHAR not null default 0,
"email" VARCHAR (50),
"avatar" bytea,
"password" VARCHAR (250) not null,
"admin_level" INT not null default 0
);
CREATE TABLE "groups"(
"id" SERIAL PRIMARY KEY,
"name" VARCHAR (50) unique not null,
"password" VARCHAR (250) not null
);
CREATE TABLE "tasks"(
"id" SERIAL PRIMARY KEY,
"username" VARCHAR default 'none',
"groupname" VARCHAR,
"created" date not null default CURRENT_DATE,
"title" VARCHAR(50) not null,
"detail" VARCHAR(250),
"due" date,
"complete" boolean default false
);
If you would like to name your database something else, you will need to change ships-in-the-night
to the name of your new database name in server/modules/pool.js
- Run
npm install
- Create a
.env
file at the root of the project and paste this line into the file:While you're in your newSERVER_SESSION_SECRET=superDuperSecret REACT_APP_EMAIL_USER ='your email address' REACT_APP_EMAIL_PASS ='your email password'
.env
file, take the time to replacesuperDuperSecret
with some long random string like25POUbVtx6RKVNWszd9ERB9Bb6
to keep your application secure. Here's a site that can help you: https://passwordsgenerator.net/. If you don't do this step, create a secret with less than eight characters, or leave it assuperDuperSecret
, you will get a warning. You will need to enter a working email address and password if you plan to use the invite function. You may have to adjust the security settings of your email account to allow less secure apps for this to work. - Start postgres if not running already by using
brew services start postgresql
- Run
npm run server
- Run
npm run client
- Navigate to
localhost:3000