Skip to content

GoyalIshaan/quickmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Quickmark

Note - The Prisma Accelerate Limit has been reached by this application thus resulting in it not running properly

🚀 Overview

This project is a full-stack, feature-rich blogging platform built with modern web technologies. It provides a seamless experience for content creators and readers alike, with a focus on performance, user experience, and scalability.

🌟 Features

  • User Authentication: Secure signup, login, and password reset functionality.
  • Profile Management: Users can create and edit their profiles, including profile pictures.
  • Blog Creation and Editing: Rich text editor with support for formatting, images, and mathematical equations.
  • Comment System: Users can engage with content through a nested comment system.
  • Like and Save Functionality: Readers can like posts and save them for later reading.
  • Follow System: Users can follow their favorite authors.
  • Responsive Design: Fully responsive interface that works seamlessly on desktop and mobile devices.
  • Pagination: Efficient loading of blog posts and comments through pagination.
  • Draft Saving: Automatic saving of drafts to prevent loss of work.
  • Social Sharing: Easy sharing of blog posts to various social media platforms.

🛠 Technologies Used

Frontend

  • React: For building a dynamic and responsive user interface.
  • TypeScript: For adding static typing and improving code quality.
  • Tailwind CSS: For rapid and customizable styling.
  • Framer Motion: For smooth animations and transitions.
  • React Hook Form: For performant and flexible form handling.
  • React Router: For seamless client-side routing.

Backend

  • Cloudfare Worker Functions: As the runtime environment.
  • Hono: For building on edge environments.
  • Postgress SQL: As the database for storing user data and blog posts.
  • Prisma ORM: For object modeling and managing database schemas.
  • Prisma Accelerate: For connection pooling
  • JSON Web Tokens (JWT): For secure authentication.
  • Zod - For runtime input validation

Testing and Quality Assurance

  • ESLint: For code linting and maintaining code quality.

Deployment and DevOps

  • Cloudfare Workers: To deploy the backend.
  • Vercel: To deploy the frontend

🏗 Architecture

The project follows a microservices architecture, with separate services for authentication, blog management, and user profiles. This approach ensures scalability and ease of maintenance.

🔒 Security Measures

  • Implemented JWT for secure authentication.
  • Implemented CORS policies to control access to the API.
  • Sanitized user inputs to prevent XSS attacks.

🎨 Design Decisions

  • Adopted a minimalist design language for a clean and modern look.
  • Used a modular component structure for reusability and maintainability.
  • Implemented a responsive design system using Tailwind CSS for consistent styling across devices.

🚧 Challenges Overcome

  • Implemented a real-time comment system.
  • Optimized database queries for handling large volumes of blog posts and comments.
  • Implemented a rich text editor with support for mathematical equations.

🔮 Future Enhancements

  • Implement a recommendation system using machine learning.
  • Add support for multiple languages and localization.
  • Integrate a analytics dashboard for authors to track their blog performance.
  • Implement a plugin system for extending blog functionality.

🚀 Getting Started

# Clone the repository
git clone https://github.com/yourusername/quickmark.git

# Install dependencies
cd backend
npm install

# Set up environment variables in wrangler.toml
cp wrangler.toml

# Edit wrangler.toml with your database prisma accelerate connection link and JWT secret key

# Run the development server
npm run dev

# Install frontend dependencies
cd ..

cd frontend

npm install

npm run dev

# Build for production
npm run build

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

📞 Contact

Ishaan Goyal - goyalishaan2005@gmail.com


Thank you for checking out our project! We're constantly working to improve and expand its capabilities. If you have any questions or feedback, please don't hesitate to reach out.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages