Campaign Sign Tracker is a web-based application designed to help political campaigns efficiently manage and track the placement of campaign signs. This project aims to streamline the process of sign placement, maintenance, and monitoring, providing a user-friendly interface accessible from various devices.
- Map view showing sign locations as pins
- Database to track sign locations with filters and statuses
- User authentication and authorization
- Responsive design for desktop and mobile use
- Real-time updates for sign statuses (e.g., newly placed, need repair, stolen)
- Task assignment for sign installation and maintenance
- Next.js 14.2.4
- React 18
- TypeScript 4.9.5
- MongoDB with Mongoose 7.5.3
- Google Maps JavaScript API
- Firebase 10.5.2 (for image storage)
- Tailwind CSS 3.3.0
- NextAuth.js 4.24.7
- Node.js (Version 18.17.0 or later)
- npm (comes with Node.js)
- Git
- MongoDB (Version 5.0 or later)
-
Clone the repository:
git clone [your-repository-url] cd campaign-sign-tracker -
Install dependencies:
npm install -
Set up environment variables: Create a
.env.localfile in the root directory and add the following:MONGODB_URI=your_mongodb_connection_string NEXTAUTH_SECRET=your_nextauth_secret NEXTAUTH_URL=http://localhost:3000 GOOGLE_MAPS_API_KEY=your_google_maps_api_key FIREBASE_API_KEY=your_firebase_api_key FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain FIREBASE_PROJECT_ID=your_firebase_project_id FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id FIREBASE_APP_ID=your_firebase_app_id -
Run the development server:
npm run dev -
Open http://localhost:3000 in your browser to see the application.
- Log in to the application using your credentials.
- Use the map view to add new sign locations or view existing ones.
- Update sign statuses as needed (e.g., installed, needs repair, removed).
- Assign tasks to team members for sign installation or maintenance.
- Use filters to view signs by status or location.
Contributions are welcome! Please feel free to submit a Pull Request.
[Specify your license here]
Craig Conover - cconover2@byui.edu
Project Link: [Your repository URL]