Prompt Keeper is a web-based application designed to store and manage user prompts across various AI models such as ChatGPT, Midjourney, Claude2, and Stable Diffusion. The application allows users to create, read, update, and delete prompts. Users can also view their prompts in a dashboard and explore a public gallery of prompts from other users. With Google OAuth for authentication, Prompt Keeper offers a secure way to manage and keep track of all your prompts in one place.
- Description
- Features
- Technologies Used
- Project Structure
- Setup and Installation
- Usage
- Insights Gained
- Support and Contribution
- User authentication via Google OAuth
- Dashboard for managing prompts
- Public gallery for prompts
- CRUD operations for prompts
- Support for multiple AI models
- Responsive UI
- Node.js
- Express.js
- MongoDB
- Mongoose
- Passport.js (Google OAuth)
- Handlebars.js (for Views, Layouts, and Partials)
Here's an overview of the main files and folders in this project:
/config
- Contains config files/models
- Contains Mongoose models for MongoDB/routes
- Contains all route files/middleware
- Contains custom middleware functions/views
- Contains Handlebars views, layouts, and partials/helpers
- Contains Handlebars helpers/public
- Contains static filesapp.js
- Entry point for the application
- Node.js
- MongoDB
-
Clone the repository.
git clone https://github.com/kevinmulier/prompt_keeper.git
-
Navigate to the project directory.
cd prompt-keeper
-
Install dependencies.
npm install
-
Create a
.env
file and fill out the required fields (see.env.example
for reference).MONGODB_URI=your_mongodb_uri GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret SESSION_SECRET=your_session_secret PORT = 3000
-
Run the project.
npm run start
- Open your web browser and go to
http://localhost:3000
(or whatever port you've set). - Use the Google OAuth flow to log in.
- Once logged in, you can use the dashboard to create, edit, or delete prompts.
- You can also view the public gallery of prompts or click on a user name to see all its public prompts.
The development process provided valuable insights into various technical areas critical for full-stack development.
- Utilizing the MVC architecture improved code organization and facilitated scalability.
- Implementing CRUD operations enhanced understanding of data flow in web applications.
- Integrating Google OAuth clarified the fundamentals of OAuth protocols and token-based authentication.
- The adoption of Passport.js provided experience with middleware-based authentication in Node.js.
- Working with MongoDB and Mongoose offered practical experience in NoSQL database management.
- Schema design and data modeling were central to optimizing database interactions.
- The use of Handlebars.js provided exposure to server-side templating mechanisms.
Feel free to fork the project and submit pull requests for any features or fixes you think would improve the app. If you encounter any issues or have suggestions, please open an issue on GitHub.