# Background and Overview

*(Logo credit: [Michael Ng Cen](https://github.com/MichaelNgCen))*
### Pensive is a book-writing management app.
**Pensive** offers writers an organizational and inspirational space to develop their story ideas from beginning to end.
Pensive's functionalities assist in:
- *Formulation*: Plot, conflict, setting, and character setup pages help you record and draft your ideas, summaries, and concepts.
- *Cohesiveness*: Track and link your storylines or characters across chapters through instant access panes and tags.
- *Creativity*: Minimize distractions as you write by cultivating your ideal vibe and environment using the immersive rich text editor and inspiration space.
- *Organization*: Work on multiple book projects or chapters at the same time without losing track of your progress.
- *Accountability*: Set deadline countdowns or word count goals in your home dashboard and export them to your calendar.
- *Ease*: No learning curve needed due to an intuitive user interface coupled with easy export functions for transferring your writing to Google Docs, email, or your local computer.
# Functionality and MVPs
1) User auth login, signup, and demo user
2) Home dashboard with CRUD for book projects and chapters, plus export functions (Google Drive, email, download)
3) Sidebar for vibe settings (results from Spotify, quote, and image APIs) saved as a Vibe profile (CRUD)
4) Chapter, plot, conflict, characters, and setting forms (all CRUD) saved to each book project
5) Rich text editor
6) Character, plot, conflict, character, and setting tags to be accessed across books or chapters
7) Production ReadMe
*Future features: Importing rich text files into the app; Writer vs Editor user profiles; ability to share writings from Writers to Editors; Editor functionality to create tasklists for Writers on any page; Editor commenting functionality on text editor; email notifications for both parties*
# Technologies and Technical Challenges
### Pensive is created using the MERN stack:
* Backend: **MongoDB / Express**
* Frontend: **React / Node.js**
### **Technical Challenges:**
- Sourcing multiple APIs and how to save those responses to be re-accessed at a later time
- Embedding a working rich text editor and persisting those results to the database
- Providing access to and displaying details of another feature while working on one form (eg. viewing a character page while writing a chapter or storyline)
- Learning to code file export functionalities
# Group Members and Work Breakdown
1) **[Shengzhi Luo](https://github.com/ShengzhiLuo)**
2) **[Shuyang (Claire) Ning](https://github.com/shuyangn)**
3) **[Leon Tang](https://github.com/leonel040792/w12d1)** - Front-End Lead
5) **[Irene Martinez](https://github.com/imartinez921)** - Team Lead / Flex Lead
- (Mon, Tue) Vibe profile (API fetch requests and persisting the responses to the database)
- (Wed, Thu) Feature integration and database seeding