- Plan·It is a clone of Doodle which is used for scheduling events within a group.
- This was created for a group midterm project as part of our learnings at Lighthouse Labs.
- Visitors can create an event proposal in much the same way as Doodle, by specifying:
- event title and description
- their own name and email
- organizers can then send the unique URL to possible attendees via their own communication workflow (email, Slack, Messenger, etc.)
- Attendees visit the unique URL and:
- specify their name and email
- specify their availability (yes/no only) for each possible time slot
- view all responses including their own
- delete responses
- The unique URL should be auto-generated and difficult to guess
- Note: this app does not follow the typical user authentication process: users don't need to register or log in and the only way to access the Plan·It is via links
- Node 10.x or above
- NPM 5.x or above
- PG 6.x
- body-parser 1.19.0
- chalk 2.4.2
- dotenv 2.0.0
- ejs 2.6.2
- express 4.17.1
- morgan 1.9.1
- node-sass-middleware 0.11.0
- pg 6.4.2
- pg-native 3.0.0
The following steps are only for one of the group members to perform.
- Create your own copy of this repo using the
Use This Template
button, ideally using the name of your project. The repo should be marked Public - Verify that the skeleton code now shows up in your repo on GitHub, you should be automatically redirected
- Clone your copy of the repo to your dev machine
- Add your team members as collaborators to the project so that they can push to this repo
- Let your team members know the repo URL so that they use the same repo (they should not create a copy/fork of this repo since that will add additional workflow complexity to the project)
- Create the
.env
by using.env.example
as a reference:cp .env.example .env
- Update the .env file with your correct local information
- username:
labber
- password:
labber
- database:
midterm
- Install dependencies:
npm i
- Fix to binaries for sass:
npm rebuild node-sass
- Reset database:
npm run db:reset
- Check the db folder to see what gets created and seeded in the SDB
- Run the server:
npm run local
- Note: nodemon is used, so you should not have to restart your server
- Visit
http://localhost:8080/
- Do not edit the
layout.css
file directly, it is auto-generated bylayout.scss
- Split routes into their own resource-based file names, as demonstrated with
users.js
andwidgets.js
- Split database schema (table definitions) and seeds (inserts) into separate files, one per table. See
db
folder for pre-populated examples. - Use the
npm run db:reset
command each time there is a change to the database schema or seeds.- It runs through each of the files, in order, and executes them against the database.
- Note: you will lose all newly created (test) data each time this is run, since the schema files will tend to
DROP
the tables and recreate them.