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
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!
concurrently nodemon node-cron
To get started with the Fender Rewards Program, follow the instructions below:
Make sure you have the following installed on your machine:
-
Node.js
-
npm (Node Package Manager)
npm i npm@latest -g
-
Clone the repository:
git clone https://github.com/justintsugranes/project_fender-rewards.git
-
Install NPM packages
npm i
-
Create a .env in
/server/config/
-
Create a your MONGODB_URI
MONGODB_URI = "ENTER YOUR URI"
-
cd into root directory
npm start
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
/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
- Built framework free using just JavaScript, HTML, and CSS
- Get User, Earn Points, and Redeem Points functions
- Hosted on Firebase
- Node.js and Express server
- Follows MVP pattern
- Hosted on Firebase
- Connected to MongoDB Atlas Backend
- Swagger documentation
See the open issues for a full list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE.md
for more information.
Give a ⭐️ if you like this project and if you like my work, maybe you would like to