Create web-app for photographers.
JavaScript, Node.js, Express.js, REST API, JWT, JSON validation, AJAX, WayForPay API, MongoDB.
Mongoose, AJV, crypto, jsonwebtoken, deep-freeze, multer for images.
JavaScript, EJS, localStorage, Sass (SCSS), Materialize library.
A web-app was created with Node.js application (via express-generator) using MVC. The next modules were created:
- Server module: contains main app file with base configurations of application and connection to DB;
- Configuration module: contains configuration of PORT, WayForPay, deepfreeze;
- Model module: contains models of DB entities in MongoDB - users, albums, orders;
- Controller module: functions of interaction with the DB entities (CRUD), access & refresh tokens (JWT) for users using private and public keys, WayForPay configurations using test data;
- Routes module: built REST API architecture using POST and GET methods, made middleware to check if a user is logged in by access token to enter a personal page.
- Schemas module: contains JSON validation schemes for validate the data from front.
Web-pages generated with EJS template maker, localStorage for JWT, own styles by Sass (SCSS) and Materialize library:
- a page with registration and login forms for users on separate link;
- a page with the personal space. It contains the following functional options (on separates links):
- edit profile: to edit personal information on profile page;
- albums: create/delete albums, create link for buyers;
- images page in albums: add photos using separate inputs form, delete photos using checkbox form;
- orders: review orders and their status;
- log out of personal cabinet.
- buyer’s page without JWT: using checkbox form and making an order using WayForPay technology with testing parameters to make payment.
Clone project to your machine. Use npm install to add all dependencies in project and open web-app.
Log in page
Registration page
Profile page
Albums page
Orders page
User buying page






