Patilerce

Patilerce is a website created for cat and dog adoptions. It has many features. After signing up and confirming their email, users can:

All new adoption listings and Q&A posts must be approved by an admin before they appear on the site.

STACK

  • javascript
  • next.js
  • css modules
  • mongoDB
  • next-auth
  • aws s3
  • jest
  • react testing library
Patilerce Homepage

Project Purpose

Patilerce was built to make pet adoption easier and more accessible. The main goal was to provide a platform where users can share and find adoption listings with ease. I also wanted to include features like a Q&A section and private messaging to create a sense of community. Admin approval ensures only high-quality and safe listings are published.

Patilerce Adopt Listings

Stack

I chose Next.js because it has full-stack capabilities. For styling, I decided not to use any libraries or pre-made UI. Instead, I designed everything with pure CSS and used CSS modules to easily create unique class names.

Since the database for Patilerce is not very complex, I decided to use MongoDB, as it doesn't need relationships between data entries.

For authentication, I used the Next-Auth package and set up JWT for authentication, using bcryptjs to handle password security.

Since the website handles a lot of images, I integrated AWS S3 as an image container. With Next.js's built-in image optimization, the images load more efficiently.

Patilerce Profile PagePatilerce Breed Info SectionPatilerce Community SectionPatilerce Login Page

Challenges

Since Patilerce was my first big project, I faced many challenges. One of the biggest was making sure the authentication was secure. Using Next-Auth with JWT and bcryptjs was easy, but I had to be careful with user data and passwords. I learned how to manage tokens and keep passwords safe.

Another challenge was building the site without using pre-made UI components or libraries. I had to make everything from scratch, which took more time, but I had full control over the design and learned a lot about CSS.

Lastly, I had some trouble making the database structure work well, especially since I chose MongoDB. It’s flexible, but I had to plan the database carefully to make sure it could grow as the site did.

Patilerce Cat Breeds Page

Lessons Learned

Working on Patilerce taught me several valuable lessons. I learned the importance of good planning, especially when building a design from scratch. It made me appreciate the time and effort that goes into creating a custom design and how crucial it is to understand CSS thoroughly.

I also learned how to handle authentication and passwords securely. It's important to manage user data carefully and use the right methods to ensure security.

Lastly, I learned the importance of planning the database structure from the beginning. Even with a flexible system like MongoDB, a well-designed schema is key to making sure the project can grow without issues.

other projects.

workwise screenshot

workwise

A company management system with role-based user access, graphical reports, and additional features.

nuvola coffee shop screenshot

nuvola coffee shop

Developed an e-commerce application with Next.js for a coffee roasting company.