Study-Buddy
In this assignment of the ESMT Coding Bootcamp, the challenge is to work in a team to create a full-stack web application of an original concept using the model-view-controller (MVC) paradigm. The web application, when deployed to Heroku, connects to our own API, includes user authentication, and connects to a MySQL database.
User story
As a program manager at a business school, I want to easily, quickly, and automatically create study groups for a cohort of students of different sizes based on a set of criteria that differ between educational programs.
Requirements
- Use Node.js and Express.js to create a RESTful API.
- Use Handlebars.js as the template engine.
- Use MySQL and the Sequelize ORM for the database.
- Have both GET and POST routes for retrieving and adding new data.
- Use at least one new library, package, or technology.
- Have a folder structure that meets the MVC paradigm.
- Include authentication.
- Protect API keys and sensitive information with environment variables.
- Be deployed using Heroku (with data).
- Have a polished, responsive, and interactive UI.
- Meet good-quality coding standards.
- Have a professional README (with unique name, description, technologies used, screenshot, and link to deployed application).
Key challenges
Our student project team worked quickly around our diverse schedules to meet the outlines of the user story and acceptance criteria. Nevertheless, at presentation time, key elements of the web app were not functioning as expected.
Dependencies
- AdminLTE 3.2.0 for designing dashboard and page templates with diverse plugins
- Bcrypt 5.0.1 for password hashing
- Connect session sequelize 7.1.5 for a SQL session store using Sequelize.js
- Dotenv 16.0.2 for management of configuration data
- Express 4.18.1 for building the web app and API on Node.js
- Express handlebars 6.0.6 for rendering web pages via templates
- Express session 1.17.3 for creating and managing middlewear for user session authentication
- MySQL 2.3.3 for storing and managing tables of data
- Papaparse 5.3.2 for allowing users to upload and parse .csv file data for display and other use
- Sequelize 6.21.5 for modeling and mapping database records for Node.js
Screenshots
Project team