This application helps users to prepare and initiate conversations in a wide variety of settings. It provides the user with a set list of events or environments, and based on their input, they will receive a number of relevant questions and conversation starters. New users or visitors will have the ability to access the pre-existing conversation starters. Upon log in, users can input suggestions for new questions and events.
You can access a working prototype of the React app here: https://convo-to-go-client.vercel.app/ and Node app here: https://convo-to-go-server.herokuapp.com/
This app is for two types of users: a visitor and a logged-in user
- As a visitor
- I want to understand what I can do with this app (read about, sign up, or log in),
- so I can decide if I want to use it.
- As a returning register user
- I want to enter my password and username to use this app,
- so I can have access to my account.
- As a visitor
- I want to register to use this app
- so I can create my own conversation starters.
- As a logged-in user,
- I want to be able to preview the content of the app,
- so I can start looking for conversation starters.
- As a logged-in user,
- I want to be able to select a category,
- so I can view the corresponding conversation starters.
- As a logged-in user,
- I want to suggest new events and/or initiaters,
- so that I can access those suggestions.
The app's functionality includes:
- Every User has the ability to create an account
- Every User has the ability to create a convo
- Front-End: HTML5, CSS3, JavaScript ES6, React
- Back-End: Node.js, Express.js, Mocha, Chai, RESTful API Endpoints, Postgres
- Development Environment: Heroku, DBeaver
(Example) Landing Page |
---|
Register Page |
Login Page |
- (Example) Index.js (stateless)
- App.js (stateless) - contains router
- LandingPage.js (stateful)
- Login.js (stateful) -
- Register.js (stateful) -
- Navbar.js (stateless) -
- Homepage.js (stateful) -
- CreateConvo.js (stateful) -
- ListOfConvoEvents.js (stateful) -
- FavoritedEvents.js (stateful) -
- FavoritedConvos.js (stateful) -
- SpecificEventConvoList.js (stateful) -
- LandingPage.js (stateful)
- App.js (stateless) - contains router
- Users (database table)
- id (auto-generated)
- username (email validation)
- password (at least 8 chars, at least one alpha and a special character validation)
- Questions (database table)
- id (auto-generated)
- user_id (from users table)
- question (text)
- is_favorited (boolean default false)
- is_public (boolean default true)
- min_number_of_people (integer default = 1)
- ok_for_entertainment (boolean default true)
- ok_for_exercise (boolean default true)
- ok_for_travel (boolean default true)
- ok_for_technology (boolean default true)
- ok_for_fashion (boolean default true)
- ok_for_holidays (boolean default true)
- ok_for_education (boolean default true)
- ok_for_work (boolean default true)
- ok_for_food (boolean default true)
- ok_for_leisure (boolean default true)
API Documentation details:
/api
├── /auth
│ └── POST
│ ├── /login
├── /users
│ └── GET /
│ └── GET /:id
├── /convos
│ └── GET
│ ├── /
│ ├── /:convo_id
│ └── POST
│ ├── /:convo_id
├── /convosbyuserid
│ └── GET
│ ├── /convo/:user_id
This is v1.0 of the app, but future enhancements are expected to include: *add more functionality
Use command line to navigate into the project folder and run the following in terminal
- To install the react project ===> npm install
- To run react (on port 3000) ===> npm start
- To run tests ===> npm run test
- To install the node project ===> npm install
- To migrate the database ===> npm run migrate -- 1
- To run Node server (on port 8000) ===> npm run dev
- To run tests ===> npm run test