Welcome to the Next.js Suggestions Application! This project is designed as a platform where users can suggest topics and vote on their favorite ideas for discussion. It was created as a personal learning project to explore the capabilities of Next.js, including server-side rendering, API routes, and dynamic routing.
User Authentication:
Users can create an account, log in with Google, Facebook, or register with an email address using Auth0.
Topic Suggestions and Voting:
Users can submit suggestions and vote on topics that interest them.
Responsive Design:
Built with Tailwind CSS, the application is fully responsive, making it user-friendly on both desktop and mobile devices.
Next.js Integration:
This project leverages several key features of Next.js, including:
TypeScript for Type Safety:
TypeScript is used throughout the project to enhance code reliability and improve the developer experience.
Cloud Infrastructure:
The application is deployed using Google Cloud Run and utilizes Google Firestore as the database. Infrastructure as Code is managed via Terraform.
To run this project locally, follow these steps:
Clone the repository:
https://github.com/randallgann/suggestions-app-nextjs.git
Install dependencies:
cd nextjs-suggestions-app
npm install
Set up .tfvars: Create a .tfvars file in the terraform/env directories, using the appropriate variables for each environment. The following variables are required:
project=""
region=""
image=""
service_name=""
AUTH0_SECRET=""
AUTH0_ISSUER_BASE_URL=""
AUTH0_CLIENT_ID=""
AUTH0_CLIENT_SECRET=""
Run the development server:
npm run dev
The app will be available at http://localhost:3000.
Additional Social Logins:
Plan to include more social login providers beyond Google and Facebook.
UI/UX Enhancements:
Improve the user interface for a more intuitive experience.
New Features:
Implement additional features based on user feedback and suggestions.
Contributions are welcome! If you'd like to contribute to this project, please fork the repository and create a pull request. Feel free to open issues for bug reports, feature requests, or general feedback.
This project is licensed under the MIT License. See the LICENSE file for details.