TerpNotes is a collaborative note-sharing platform designed to help students share and access study materials efficiently. This project was developed as part of the University of Maryland's 2025 Bitcamp Hackathon.
TerpNotes is a platform that allows students to upload, browse, and share notes for various courses. It aims to foster collaboration and improve academic success by providing a centralized repository for study materials.
This project was built during the University of Maryland's 2025 Bitcamp Hackathon, showcasing teamwork, innovation, and technical expertise.
- User Authentication: Secure login and registration system.
- Note Sharing: Upload and share notes with peers.
- Search and Browse: Easily find notes by course or topic.
- Responsive Design: Optimized for both desktop and mobile devices.
- Privacy Controls: Users can manage the visibility of their notes.
- Frontend: React, Next.js
- Backend: Firebase Firestore, Python, MongoDB
- Deployment: AWS EC2
- CI/CD: GitHub Actions
Follow these instructions to set up the project locally.
- Node.js (v16 or later)
- npm or yarn
- Git
- An AWS EC2 instance (for deployment)
-
Clone the repository:
git clone https://github.com/MajorH5/TerpNotes.git cd TerpNotes -
Install dependencies:
cd frontend npm install -
Set up Firebase:
- Create a Firebase project.
- Enable Firestore and Authentication.
- Add your Firebase configuration to
frontend/src/lib/firebase-config.js.
-
Start the development server:
npm run dev
The app will be available at
http://localhost:3000.
- Sign Up: Create an account using your email.
- Upload Notes: Share your notes by uploading them to the platform.
- Browse Notes: Search for notes by course or topic.
- Collaborate: Share links to notes with your peers.
The project is configured for deployment on AWS EC2 using GitHub Actions.
-
Add the following secrets to your GitHub repository:
EC2_SSH_PRIVATE_KEY: Your EC2 instance's private SSH key.EC2_USER: The username for your EC2 instance (e.g.,ubuntu).EC2_HOST: The public IP address of your EC2 instance.
-
Push changes to the
mainbranch. The GitHub Actions workflow (.github/workflows/deploy.yml) will automatically deploy the latest code to your EC2 instance.
Contributions are welcome! Follow these steps to contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Commit your changes:
git commit -m "Add your message here" -
Push to your branch:
git push origin feature/your-feature-name
-
Open a pull request.