Skip to content

justinTsugranes/project_fender-rewards

Repository files navigation


The Fender Rewards Program is a simple full-stack application built using JavaScript, HTML, and CSS for the frontend and Node.js and Express.js for the server. The site is hosted on Firebase. The application utilizes MongoDB Atlas as the database. It's meant to test the functionality of a hypotethical rewards program for Fender Digital.

Explore the docs --- View Demo --- Report Bug

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. Contact

About The Project

Project Screen Shot Contributors Forks Stargazers Issues MIT License

At this stage, the Fender Rewards Program is in its early development phase and focuses on creating a basic structure for a rewards program. The current implementation does not include any extensive features.

The purpose of the application is to test the logic for managing a loyalty program where users can earn points for specific actions, such as purchases and achievements and redeem points.

The project is just in the beginning stages and the initial version includes the foundational setup and basic functionality. Future iterations will involve the integration of additional features, such as the points redemption algorithm, data management, user interactions, and testing.

I'd love to hear any feedback or just thoughts. Feel free to reach out at my contact info below. Cheers!

Built With

Frontend

javascript html css

Backend / API

node express mongodb postman swagger

Deployment / Hosting

firebase

Testing

cypress jest

concurrently nodemon node-cron

Getting Started

To get started with the Fender Rewards Program, follow the instructions below:

Prerequisites

Make sure you have the following installed on your machine:

  • Node.js

  • npm (Node Package Manager)

    npm i npm@latest -g

Installation

  1. Clone the repository:

    git clone https://github.com/justintsugranes/project_fender-rewards.git
  2. Install NPM packages

    npm i
  3. Create a .env in /server/config/

  4. Create a your MONGODB_URI

    MONGODB_URI = "ENTER YOUR URI"
  5. cd into root directory

    npm start

Usage

From the frontend, you can get a user by id, add points to a user, and redeem points for a user.

For more examples, please refer to the Documentation

Folder Structure

/root
├── .firebase
├── .github
├── .vscode
├── client
│ ├── node_modules
│ ├── public
│ │ ├── css
│ │ │ └── styles.css
│ │ ├── img
│ │ ├── js
│ │ │ └── client.js
│ │ ├── index.html
│ │ ├── notes.html
│ │ └── prompt.html
│ ├── .gitignore
│ ├── bs-config.json
│ ├── fabicon.ico
│ ├── package-lock.json
│ └── package.json
├── node_modules
├── functions
│ ├── config
│ │ ├── allowedOrigins.js
│ │ ├── corsOptions.js
│ │ ├── dbConfig.js
│ │ └── index.js
│ ├── controllers
│ │ └── user.controller.js
│ ├── logs
│ ├── middleware
│ │ ├── errorHandler.js
│ │ ├── index.js
│ │ └── logger.js
│ ├── models
│ │ ├── index.js
│ │ └── user.model.js
│ ├── routes
│ │ ├── index.js
│ │ └── user.routes.js
│ ├── services
│ │ ├── dbIndexing.js
│ │ ├── index.js
│ │ └── user.service.js
│ ├── swagger
│ │ ├── swagger.css
│ │ ├── swaggerDef.js
│ │ └── swaggerOptions.js
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── index.js
│ ├── package.json
│ └── README.md
├── tests
│ └── cypress
│ │ ├── downloads
│ │ ├── e2e
│ │ ├── fixtures
│ │ ├── support
│ │ └── videos
│ └── jest
│ │ └── unit
│ └── mocks
│ │ └── mockUsers.js
├── .env
├── .firebaserc
├── .gitignore
├── cypress.config.js
├── firebase.json
├── jest.config.js
├── LICENSE
├── package-lock.json
├── package.json
└── README.md

Features

Frontend Features

  1. Built framework free using just JavaScript, HTML, and CSS
  2. Get User, Earn Points, and Redeem Points functions
  3. Hosted on Firebase

Backend Features

  1. Node.js and Express server
  2. Follows MVP pattern
  3. Hosted on Firebase
  4. Connected to MongoDB Atlas Backend
  5. Swagger documentation

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE.md for more information.

Contact

🤝 Support

Give a ⭐️ if you like this project and if you like my work, maybe you would like to

Buy Me A Coffee

(back to top)