Casca is an innovative e-commerce website where users can create customized smartphone cases. With Casca, users have the option to upload their own images or generate images using AI, as well as customize colors, resize images, choose different models, and select quality levels.
- Upload Custom Images: Personalize your phone case by uploading your own photos.
- AI Image Generator: Create unique images with the built-in AI tool.
- Customization Options:
- Color adjustments
- Image resizing
- Model selection
- Quality variations
- Secure Payments: Integrated with Stripe for seamless payment processing.
- User Authentication: Supports OAuth for secure login/signup.
- Responsive Design: Built with Tailwind CSS for an optimal experience across devices.
- Frontend: Next.js, Tailwind CSS
- Backend: Neon Prisma DB with PostgreSQL
- File Upload: Uploadthing
- Authentication: OAuth
- Payments: Stripe
- Deployment: Vercel
To get a local copy of Casca up and running, follow these steps:
Ensure that you have Node.js installed on your system.
-
Clone the repository:
git clone https://github.com/casca-case/casca.git cd casca
-
Install the required packages:
npm install
-
Set up environment variables: Create a .env file in the root directory. Copy the content from env_example and update the values as needed.
-
Run the development server:
npm run dev
The application will be available at http://localhost:3000
- Navigate to http://localhost:3000.
- Sign up or log in using OAuth.
- Start customizing your smartphone case with various options.
- Proceed to checkout and pay using the secure Stripe payment gateway.
Casca is deployed on Vercel. To deploy your own version:
- Push your repository to GitHub.
- Connect your GitHub repo to Vercel and deploy with a single click.
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a new branch (git checkout -b feature/YourFeature).
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature/YourFeature).
- Open a pull request.