From 3e7d59393355ebad0f0e7eefe47efd0e7321be85 Mon Sep 17 00:00:00 2001 From: jake-schroeder-isx Date: Sun, 14 Jun 2020 22:17:44 -0400 Subject: [PATCH] updated readme and included example env var --- .env__example | 1 + readme.md | 50 +++++++++++++++++++++++++++++++++----------------- 2 files changed, 34 insertions(+), 17 deletions(-) create mode 100644 .env__example diff --git a/.env__example b/.env__example new file mode 100644 index 0000000..a18e9a3 --- /dev/null +++ b/.env__example @@ -0,0 +1 @@ +MONGO_URI=your_key_here \ No newline at end of file diff --git a/readme.md b/readme.md index 7bfe2e8..737355d 100644 --- a/readme.md +++ b/readme.md @@ -1,20 +1,36 @@ # Presence -An Alternate Reality Game World For Project XGIS - -`Technical Stack` -+ MongoDB -+ Express -+ React -+ Redux -+ Node - -`Installation Instructions` -+ 'npm run full-install' -+ 'npm run dev' - -`MVP List` -+ Feed List -+ MongoDB Backup -+ User Roles +An alternate reality game world based on Twitter for project XGIS by the Divergent Design Lab. +www.divergentdesignlab.org + +## Project Background +Create a web application that enables social media strategists to simulate and test the influence of social engineering tactics. Based on Twitter, the application enables participants and administrators to work within a familiar social media environment. + +## Development Approach +To ensure full, autonomous control, use and manipulation of the simulated social media environment, the project required development of an end-to-end clone of Twitter's core functionality. The application was independently developed, separate from Twitter including no use of their API's or other functionality. The application is a standalone full-stack social media platform build on the MERN (MongoDB, Express, React, Node) stack. + +## Technical Highlights + +1. **Infinite Posts** - Utilizing MongoDB's materialized paths to create a linked list style database structure allowing for maximized scalability and query efficiency. +2. **Advanced Data Fetching** - Using React's experimental Suspense mode, posts can be loaded into the UI using a Render-as-You-Fetch approach allowing for fine-tuned loading states and support for slow 3G connections. +3. **JWT-Based Authentication** - Managing user accounts via Passport.js and Bcrypt for flexible integration with custom login forms and secure encryption/decryption of password data. +4. **Simple Client Side Caching** - Keeping server state up to date with client-side local stores by implementing React-Query a framework providing hooks for fetching, caching and updating asynchronous data. +5. **Streamlined Global State Mangagment** - Maintaining global state with React's Context API allows for less boilerplate and a more flexible approach. +6. **Adaptive Layout** - Using CSS media queries and flexbox, UI components are self-contained and respond according to the device widths. Supports desktops, tablets and mobile phones. + +--- + +# Installation + +To setup on your local machine, run the install command and then edit the .env__example file to include your mongodb api key. + +`npm run full-install` + +and then to start the project in development mode + +`npm run dev` + +# Contributors ✨ + +Jake Schroeder : [Github](https://github.com/JakeSchroeder) : [Email](mailto:jake.schroeder@isophex.com) : [Website](https://jakeschroeder.me)