Bnoteable — A Platform for Those Who Love To Create Music Share: MuStack Score Case study score 5.0 Date Published 11 August 2022 Reading Time 3-Minute Read Developing and improving the efficiency of a networking platform for musicians. Read Client Review Project Summary Continuing the development of a musician networking platform which involved implementing new features, enhancing the existing ones and fixing bugs/errors/issues in the platform by improving its efficiency and productivity along with making the platform responsive. Problem Statement Our client (who is the founder and CEO of a new company that connects music students to colleges, and colleges to students) wanted us to design and create a social platform where each and every user is able to connect and interact with one another easily. He came to us after a bad experience with some other company and was expecting to continue the development by improving website performance as well as efficiency. The platform had various bugs which needed to be fixed and some major features were to be added like payment service, otp service, adding more security along with improving existing features. Performance of platform was being affected as there were some major issues like: Deployment architecture, everything was deployed on a single EC2 instance meaning there were high levels of downtime. The performance was impacted more when the user base was increased. The videos on his platform were taking a lot of time to load Solution We followed MVC architecture for developing REST API using express as middleware and mongoose for managing data in MongoDB. Authenticated API with jwt by using jsonwebtoken package. Added payment service in the platform by integrating stripe payment gateway with help of stripe package, Created OTPs for security/validation which was communicated via SMS with help of Twilio. To improve the performance, we deployed the backend on a separate ec2 instance with nginx as reverse proxy and pm2 as process manager which comes with a built in load balancer and helps to keep the application alive forever. Installed nginx on the server, changed the nginx.conf file configurations as per the requirement and it worked as a load balancing solution. Replaced the lets encrypt SSL certificates with ACM(AWS Certificate Manager) to make certificate renewal, provision and management process better and easier. Adding new features to the platform on the front end involved creating several components, services, directives, pipes and modules in Angular. To reduce the load time we implemented lazy loading with help of lazy load routes. The reason behind increased load time for videos was use of video tag over secured protocol, to solve this we used iframe for rendering videos which proved to be much faster. We changed the existing deployment architecture and moved the frontend to S3 so that load on the server can be reduced. We moved the front end to S3 with CloudFront as CDN for speeding up the distribution of web content and improving performance. Technologies Angular 10, Node, Express, MongoDB, AWS S3, EC2, CloudFront Success Metrics Provided all the deliverables within the expected deadlines, improved performance as downtime was reduced and videos were no longer buffering for a long time. Met all the expectations of the client and with positive feedback. All his meetings with directors and students were successful due to which he wanted us to implement some more new features on his platform. Continuous reporting of progress to the client. Related Case Studies "Awaiting client review" Derricks Music Website Project "Awaiting client review" Platform to Connect Business and Social Associations to Cut Down Food Waste Change cookie settings Close GDPR Cookie Settings Privacy Overview Strictly Necessary Cookies 3rd Party Cookies Cookie Policy Privacy Overview This website uses cookies so we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognizing you when you return to our website and helping our team understand which sections of the website you find the most interesting and useful. You can change your cookie preferences by navigating the tabs on the right-hand side. Note: The 3rd party cookie for Google Analytics cannot be turned off, as the data collected is entirely anonymous and used for internal performance tracking. Strictly Necessary Cookies Strictly Necessary Cookies should be enabled at all times so we can save your preferences for cookie settings. If you disable this cookie, we will not be able to save your preferences. This means that every time you visit this website you will need to enable or disable cookies again. Enable or Disable Cookies 3rd Party Cookies This website uses Google Analytics to collect anonymous information such as the number of visitors to the site and the most popular pages. Disabling 3rd party cookies will not disable Google Analytics, as this data is anonymized and only used for internal recording and performance tracking. Additionally, we use various cookies such as Facebook pixel for ad serving, FreshChat for chat support, Hotjar for optimizing user experience, and others, which will be turned off by disabling 3rd party cookies. Keeping 3rd party cookies enabled helps us improve our website and service. Enable or Disable Cookies Please enable Strictly Necessary Cookies first so that we can save your preferences! Cookie Policy More information about our Cookie Policy