diff --git a/.env b/.env new file mode 100644 index 000000000..2bce06159 --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +USERNAME=test-user +PASS=test-a3-22 +HOST="cs4241.h7mykbb.mongodb.net/?retryWrites=true&w=majority" \ No newline at end of file diff --git a/README.md b/README.md index 1ba2c7a4c..b6434bd5d 100644 --- a/README.md +++ b/README.md @@ -1,116 +1,26 @@ Assignment 3 - Persistence: Two-tier Web Application with Database, Express server, and CSS template === -Due: September 22nd, by 11:59 AM. +## To Do App +Molly Sunray +http://a3-molly-sunray.glitch.me -This assignnment continues where we left off, extending it to use the most popular Node.js server framework (express), -a database (mongodb), and a CSS application framework / template of your choice (Boostrap, Material Design, Semantic UI, Pure etc.) +The goal of my application is to allow users to keep track of their tasks in a to-do list by inputting the task description, category, deadline, and priority. The user also has the ability to modify and remove to-do items. The application includes a login page and a page that displays the user's to-do items in a table. One challenge I faced while creating this application was displaying only the logged-in user's to-do items in the table. Another challenge I faced was enabling the user to modify existing to-do items by changing the corresponding row to include input fields and dropdowns. I chose to authenticate the user by using cookies through the cookie-session middleware. I chose this authentication strategy because it seemed the easiest to implement. I used Bootstrap as the CSS framework because I like the styling of Bootstrap and have some prior experience with this framework. I added some custom CSS to make my application responsive to smaller screen sizes. This included modifying margins and the size of form buttons. The five Express middleware packages I used were express.static, express.json, express.urlencoded, cookie-session, and express.favicon. The express.static middleware serves files from within a given root directory. The express.json middleware parses JSON requests and populates the body object with this data. The express.urlencoded middleware is used to get data sent by form actions. The cookie middleware is used to store cookie-based sessions. The favicon middleware is used to serve a favicon for a site. -Baseline Requirements ---- - -Your application is required to implement the following functionalities: - -- a `Server`, created using Express (no alternatives will be accepted for this assignment) -- a `Results` functionality which shows all data associated with a logged in user (except passwords) -- a `Form/Entry` functionality which allows users to add, modify, and delete data items (must be all three!) associated with their user name / account. -- Use of at least five [Express middleware packages](https://expressjs.com/en/resources/middleware.html). Explore! One of these five middleware -can be a custom function that you write yourself; if you choose to do this, make sure to describe what this function is in your README. -- Persistent data storage in between server sessions using [mongodb](https://www.mongodb.com/cloud/atlas) -- Use of a [CSS framework or template](https://github.com/troxler/awesome-css-frameworks). -This should do the bulk of your styling/CSS for you and be appropriate to your application. -For example, don't use [NES.css](https://nostalgic-css.github.io/NES.css/) (which is awesome!) unless you're creating a game or some type of retro 80s site. - -Your application is required to demonstrate the use of the following concepts: - -HTML: -- HTML input tags and form fields of various flavors (`