Inspira is a full-stack web application designed to help developers manage and create project templates. With features like JWT-based authentication and a robust CRUD interface, it streamlines template management, including .gitignore, README, and package.json. The platform offers both user and admin functionalities, with an accessible admin dashboard for managing templates.
- User Authentication: Sign up and log in to access the platform.
- Template Management: Comprehensive CRUD operations for creating, updating, deleting, and viewing templates.
- Template Contribution: Users can submit new templates, reviewed by an admin before approval.
- Template Gallery: A searchable, filterable gallery with downloadable templates.
- Admin Dashboard: Access to an admin panel for managing templates.
- Role-based Access: Enhanced security via user roles for admin functionalities.
- React with Tailwind CSS
- React Router
- Axios
- Zustand
- Node.js
- Express.js
- MongoDB
- JWT
- bcryptjs
- Cookie-parser & Cors
- Multer
- Git
- Vercel
- AWS EC2
- MongoDB Atlas
- Postman
git clone https://github.com/your-username/gitignodio.git
cd gitignodo
Navigate to the backend directory (if you have separated backend and frontend):
cd backend
npm install
Create a .env file in the backend directory with the following variables:
MONGO_URI=<Your MongoDB URI>
JWT_SECRET=<Your Secret Key for JWT>
PORT=3000
npm start
cd frontend
npm install
npm start
This will start the React development server on http://localhost:5173.
Inspira/
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── server.js
│ └── .env
└── frontend/
├── src/
│ ├── api/
│ ├── components/
│ ├── pages/
│ ├── stores/
│ ├── styles/
│ ├── App.jsx
│ └── index.js
└── public/
- Sign up: Create a new account by providing your email and password.
- Log in: Use your credentials to log in. A JWT token will be returned after successful login.
- Admin Dashboard: Once logged in, access the admin panel where you can create and manage templates.
- POST /login: Logs in the user and returns a JWT token.
- POST /signup: Creates a new user.
- GET /templates: Fetches all templates. Requires authentication (JWT).
- GET /templates/:id: Fetches a specific template by ID. Requires authentication (JWT).
- POST /templates: Creates a new template. Requires authentication (JWT).
- PUT /templates/:id: Updates a template by ID. Requires authentication (JWT).
- DELETE /templates/:id: Deletes a template by ID. Requires authentication (JWT).
- Template Generator: to generate custom templates according to the requirements of the user.
- Plagiarism Checker: Any user that sends a contribution request, it will pass through a series of checks to understand if it’s already there on the website or not.
- Template Generator: Generate custom templates tailored to user requirements.
- Additional Template Support: Expand the template gallery with more options for various project types.
We welcome contributions to GitIgnodio! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Commit your changes (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.