Skip to content

RESTful web API to help with "corporate talk".

Notifications You must be signed in to change notification settings

raissa-k/talkincorporate

Repository files navigation

Talk in Corporate

How do you professionally say...?

This API returns what you might mean to say, what it should sound like in "corporate speech", and a category for that entry. It's meant in good fun and inspired by the content of Laura on Instagram and TikTok.

Entries can also be submitted, viewed, searched, and sorted by category on the project's main page.

Table of Contents

Links

Screenshots

Home Page

screenshot of the home page

Gif animation of navigating through the project

Tech Stack

Client: HTML, CSS, JavaScript

Server: Node, Express, MongoDB/Mongoose

How it's made

Due to the simplicity of the website, I used pure CSS with grid and flexbox to make it light and responsive without media queries.

On the back end, the Express framework adds readability to NodeJS and makes it easy to integrate with the EJS template engine. Not only that, but the process of creating routes and controllers is very straightforward.

Mongoose was chosen for out-of-the-box validation and abstraction of most of the MongoDB code. Its Schemas are an interesting practice of the M (models) of an MVC system.

Run Locally

Clone the project

  git clone https://github.com/raissa-k/talkincorporate.git

Install dependencies

  npm install

Start the server

  • Development
  npm run dev
  • Production
  npm start

Running Tests

To run tests, run the following command

  npm run test

Environment Variables

To run this project, add the following environment variables to your .env file in /config/.env

A .env.example file is supplied inside the config folder.

The TEST_MONGODB_URL variable is only required for tests and is optional.

MONGODB_URL=
TEST_MONGODB_URL=
PORT=3000

Lessons Learned

This was a great practice in MVC architecture. As I began building this project, the server.js file started to become difficult to read and keep in order, and so creating separate routes and controllers for the API and page renders helped keep it neat and still open to further improvement.

Roadmap

  • Add authentication methods
  • Clean and minimize .css and .js files
  • Add tests

Authors

Acknowledgements

  • Laura for the content.
  • apiDOC for the base of the documentation page on Replit.
  • SwaggerHub for the hosted, interactive documentation.