Happy to share that Iβve received a Star Award from @creowistech for my contributions to an ongoing project. π π
Iβm truly grateful that at @creowistech, I get to work on exciting projects, enhance my skills, and solve interesting problems every day.
π Milestone Achieved
Got my first pull request merged. The task was to write unit tests which required me to learn Jest and TypeScript in a short period of time. Confident and excited to make many more contributions in the future.
Hey folks,
I have joined @creowistech as an Associate Software Developer. After 2 years of programming and building personal projects, I will finally work on real-world projects that actually get used by other people. Looking forward to learn new things and build exciting stuff.
Following are the features implemented in RBAC API -
πΒ Authentication using JSON Web Tokens (signup, login, reset password)
π Authorization based on roles and permissions of a user
π Database modelling using various Mongoose schemas
π Applied filters, sorting and pagination on Mongoose documents
π APIs are deployed on a DigitalOcean Droplet using Nginx as a web server
π Configured PM2 to keep the API server running as a daemon process to ensure availability
π Utilized the cluster module to evenly distribute incoming requests across all CPU cores in the server
π APIs are documented using Swagger (OpenAPI) specification
π Validation of request payload using Joi library
π Logging of HTTP requests using Morgan
π Parsing of multipart/form-data using Formidable library
π Upload and delete images using Cloudinary APIs
π Ability to send emails using Nodemailer
π Routing enabled using Express middlewares
π Centralized error handling using Express middlewares
π Project is based on MVC architecture
Do checkout the code and star GitHub repo if you like it.
GitHub repo: https://t.co/rAtPV4kWAS
Swagger docs: https://t.co/2BdcUjnSlZ
π π Excited to share my new project - Role-based access control API
A RESTful API for a Role-Based Access Control system where permissions to perform certain tasks can be granted to users by assigning them specific roles. Here we don't have to manage permissions for every user. Instead, we have to create roles, map permissions with them, and then assign those roles to users. All the users who have been assigned a specific role inherit all the permissions mapped to it.
I have hardcoded a total of 14 permissions that are shared differently between 3 roles - Viewer, Moderator and Admin. Users are allowed to perform certain tasks based on the role they are assigned. Users who haven't been assigned a role don't have any permissions, so they can't perform any task.
This project is built using Express.js and MongoDB. It consists of 2 schemas, 25+ routes and controllers, and is deployed on a DigitalOcean Droplet using Nginx as the web server.
I have followed industry-standard practices to write code and organize the folder structure. Commit messages also follow the specification of Conventional Commits. A lot of hard work has gone into it. So, do checkout the code and star GitHub repo if you like it.
GitHub repo: https://t.co/rAtPV4kWAS
Swagger docs: https://t.co/2BdcUjnSlZ
Following are the features implemented in Shopease API:
π Authentication enabled using JSON Web Tokens (signup, login, reset password)
π Authorization based on role of a user (user or admin)
π Database modelling using various Mongoose schemas
π Used MongoDB aggregation pipelines to perform complex database queries
π Applied filters, sorting and pagination on Mongoose documents
π Scheduled CRON job to check the expiry status of coupons every midnight
π API and CRON jobs are deployed on a DigitalOcean Droplet using Nginx as a web server
π Configured PM2 to keep API and Cron jobs running as daemon processes to ensure availability
π Utilized the cluster module to evenly distribute incoming requests across all CPU cores in the server
π APIs are documented using Swagger (OpenAPI) specification
π Integration of payment gateway using Razorpay APIs
π Verification of email addresses and phone numbers using Abstract APIs (third party service)
π Validation of request payload using Joi library
π Logging of HTTP requests using Morgan
π Parsing of multipart/form-data using Formidable library
π Upload and delete images using Cloudinary APIs
π Ability to send emails using Nodemailer
π Routing enabled using Express middlewares
π Centralized error handling using Express middlewares
π Project is based on MVC architecture
Do checkout the code and star GitHub repo if you like it.
GitHub repo: https://t.co/K5Hlm3luTO
Swagger docs: https://t.co/fwJdh8WqgM
ππ Excited to share my new project - Shopease API
A RESTful API for an e-commerce platform that provides multiple endpoints to manage authentication, users, cart, wishlist, addresses, products, categories, brands, coupons, orders, and reviews.
π Features include authentication via JSON Web Tokens, Cron jobs, payment gateway integration, filtering, sorting, pagination, image upload, logging, email and phone verification.
π Consists of 8 database schemas and 70+ routes and controllers. APIs are documented using Swagger Docs.
π API and Cron jobs are deployed on a DigitalOcean Droplet using Nginx as a web server.
π Configured PM2 to keep API and Cron jobs running as daemon processes to ensure availability.
π Utilized the cluster module to evenly distribute incoming requests across all CPU cores in the server.
π Tech stack - Express.js, MongoDB, Mongoose, Joi, Cloudinary, Razorpay API, Swagger Docs, Nginx, PM2
I have followed industry-standard practices to write code and organize the folder structure. Commit messages also follow the specification of Conventional Commits. A lot of hard work has gone into it. So, do checkout the code and star GitHub repo if you like it.
GitHub repo: https://t.co/K5Hlm3luTO
Swagger docs: https://t.co/fwJdh8WqgM
I have been working on the Shopease project for quite some time and itβs still not complete. Following are the features that I will be adding in future:
π Make it fully responsive for both mobile and tablet screens
π Display shimmer UI while data is being loaded to improve UX
π Make sure client receives data from production-level APIs. Right now, mock APIs provided by JSON Server are being used.
π Replace data fetching logic of Redux Thunks by RTK Query that allows client-side caching
π Integrate Razorpay payment gateway on the client-side
π Use standard libraries like Formik to validate form data. Right now, HTML attributes like "required" and "pattern" are being used to validate form data.
π Add search functionality on products and apply debouncing to reduce the number of network calls sent to server
π Append applied filters, sort option, page number, and search query to the website URL via query parameters to preserve browsing history
π Check the online/offline status of user and display data accordingly
π Display success and error messages using react toasts to enhance UX
π Move the deployment on DigitalOcean from HTTP to HTTPS protocol
π Enable authentication via JSON Web Tokens and OAuth 2.0
π Allow users to reset their password if they forget it and canβt login
π Allow users to set, update and remove their profile photo
π Allow users to apply coupons before placing an order
π Allow users to cancel their orders before they are marked as delivered
π Allow users to review products after they have purchased them
π Allow admins to add new brands and categories for products
π Allow admins to create new coupons and manage them later
These features will take some time to be implemented. I will be sharing my progress as I add them one by one. So, keep an eye on my profile. In the meantime, do visit my GitHub profile and take a look at other projects I have built.
GitHub: https://t.co/W7VFyNH5zd
ππ Excited to share my new project - Shopease
Itβs an e-commerce platform designed to provide a seamless shopping experience to users. With a vast selection of products ranging from electronics and fashion to home goods and beauty products, Shopease aims to cater to all your shopping needs in one location.
π Developed using React and Redux, with Tailwind CSS for styling, and utilizes JSON Server to handle API requests. Hosted on DigitalOcean Droplet using Nginx as a web server.
π Features include authentication, cart, wishlist and profile management, order checkout, filtering, sorting, pagination, form validation, and custom hooks.
π It also has an admin dashboard to manage product inventory, pending orders, and registered users.
π Optimized performance by implementing lazy loading, memoization, and best practices of React and Redux.
π Tech stack - React JS, React Router v6, Redux, Redux Thunks, Tailwind CSS, JSON Server, Nginx
I have followed industry-standard practices to write code, optimize performance, and organize the folder structure. Commit messages also follow the specification of Conventional Commits. A lot of hard work has gone into it. So, do checkout the code and star GitHub repo if you like it.
Note: Project is not currently responsive for small-sized screens. So, UI wonβt render properly on mobile screens. Therefore, view it on laptop for better experience. It has a very clean and minimal UI.
GitHub repo: https://t.co/liyU29lixj
Deployed project: https://t.co/MA0z85K9qF
Following are the links to view source code and deployed project.
GitHub Link: https://t.co/4u5pifKCDl
Live Link: https://t.co/qbwbxJWvFU
#WebDevelopment#javascript
ππ Excited to share that I have built a new project called Contacts Manager. It's a CRUD application that allows users to manage their contacts. It is built with React and utilizes Firebase Firestore for data storage.
Tools and technologies used -
β¦Β Vite to initialize React project
β¦Β Vanilla CSS to style UI components
β¦Β React Router v6 to implement client-side routing
β¦Β Firebase Firestore for data storage
β¦Β Vercel for deployment
ππ Excited to share that I built a new project called Vanlife. It's a static web application that enables users to browse detailed information about available rental vans. It is built with React and utilizes Firebase Firestore for data storage.
#WebDevelopment#javascript
Tools and technologies used -
β¦ Create React App to initialize React project
β¦ Vanilla CSS to style UI components
β¦ React Router v6 to implement client side routing
β¦ Firebase Firestore for data storage
β¦ Vercel for deployment
#WebDevelopment#javascript