Placement Pitcher is a comprehensive tool designed to streamline the placement process for teams. It facilitates contact management, team coordination, and AI-powered personalized email pitching to potential recruiters or companies.
- Framework: Spring Boot (Java)
- Database: MongoDB
- Security: Spring Security with JWT Authentication
- Build Tool: Maven
- Framework: React.js (via Vite)
- Styling: Tailwind CSS
- Language: TypeScript/JavaScript
The application supports two primary roles, each with specific permissions:
The CORE user acts as the administrator for a team.
- Responsibilities:
- Configuring the team workspace.
- specialized access to administrative settings (implied by role presence).
- Inviting COORDINATORs to join the team.
- Creation: A CORE user is created via the
/api/admin/create-coreendpoint, usually requiring a system-level admin secret. Upon creation, a dedicated "Team" is established.
COORDINATORs are team members responsible for execution.
- Responsibilities:
- Managing contacts (Add, Update, Delete).
- Importing contacts in bulk via Excel.
- Sending pitches and managing email communications.
- Onboarding: Coordinators are invited by the CORE user via email links.
- Core Setup: Secure endpoint to initialize a new Team and its CORE admin.
- Invitation System: System generates unique invitation tokens sent via email to new members, allowing them to securely set up their accounts and join the correct team.
- Centralized Database: Store and manage contact details for companies/recruiters.
- CRUD Operations: Create, Read, Update, and Delete contacts.
- Excel Import: Bulk upload contacts using Excel files for efficiency.
- Assignment: Contacts can be assigned to specific users for personalized follow-ups.
- Generative AI Integration: The application utilizes AI services to generate personalized email pitches.
- Contextual Generation: Generates emails based on contact details, ensuring relevant and engaging content.
- Sent Email Tracking: Tracks emails sent through the system to avoid duplicates and monitor outreach.
- Reply Management: Handles incoming replies (infrastructure in place for handling email threads).
- JWT Authentication: Secure stateless authentication mechanism.
- Role-Based Access Control (RBAC): Ensures users can only access features permitted by their role.
- Placement Stats: Manage and display real-time placement statistics (Total Students, Placed Interns, PPOs).
- Brochure Management: Update and host the link to the official placement brochure.
- Java 17+
- Node.js & npm
- MongoDB instance (Local or Atlas)
- Navigate to the backend directory:
cd backend
Important
The application will not run without the necessary environment variables set in src/main/resources/application.properties. You must configure these before starting the application.
- Configure environment variables (or directly edit
application.properties) with your keys:GEMINI_API_KEY: For AI pitch generation.MAIL_USERNAME&MAIL_PASSWORD: For sending emails (SMTP).IMAP_USERNAME&IMAP_PASSWORD: For reading replies (IMAP).ADMIN_SECRET: For secured admin endpoints.
- Run the application:
The backend runs on port
./mvnw spring-boot:run
8080.
- Navigate to the frontend directory:
cd frontend - Install dependencies:
npm install
- Start the development server:
The frontend typically runs on port
npm run dev
5173.