Skip to content
The landing page for Talk in Corporate, displaying buttons to view API documentation and to edit entries, inputs to search entries and retrieve categories

Talk in Corporate API project overview

RESTful web API to help with "corporate talk".

Features

  1. API documentation available on Swagger or on the hosted project website

  2. 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.

  3. 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.

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

Roadmap

or: what I would like to implement given more time
  • Add authentication methods

  • Clean and minimize .css and .js files

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.

  • Rendering a classroom using EJS while taking into account the enrollment status and user authentication was a fun challenge which would have been made much easier with front end libraries such as React.

  • When it comes to text, CSS `text-transform: uppercase` also directly affects the element, and so adding aria-labels to buttons might seem like extra work but cannot be skipped.

  • While I did choose a pre-made color theme which looked fine at first, it turned out to not generate the sufficient contrast in some elements so I had to add further customization.