TrackList is a social media web application that allows users to search for songs from Last.fm, rate them, and leave comments. Users can see all or a personalized feed of ratings and user-made posts on the site. They can follow other users, see popular posts, follow different communities by #s, and interact with them as expected of a modern social media.
- Search Songs: Search for songs using the Last.fm API.
- Rate Songs: Rate songs using a star rating system.
- Leave Comments: Leave comments on songs and posts.
- View Reviews: View all reviews and ratings for songs.
- Make Posts: Make general or targeted # posts.
- Follow individuals or hashtags: Personalized feed based on following, hashtags, and reviews.
- Post Moderation: Able to block banned posts and terms in real time.
- Frontend: React, Tailwind CSS
- Backend: Firebase Firestore
- Build Tool: Vite
- Linting: ESLint
- Testing: Vitest, React Testing Library
- Node.js (v14 or higher)
- npm or yarn
- Firebase Dev Keys
- Last.FM API Key
-
Clone the repository:
git clone https://github.com/yourusername/CS3354TrackList.git cd CS3354TrackList -
Install dependencies:
npm install
-
Provide keys in .env
-
Install blockterm dependencies in the functions folder
cd functions npm install
-
Start the development server:
npm run dev
-
Start the blockterm firebase emulator in functions folder:
firebase emulators:start
-
Open your browser and navigate to
http://localhost:3000.
To run tests, use the following command:
npm run testsrc/: Contains the source code for the application.App.jsx: Main application component.Star.jsx: Component for star rating.ReviewPage.jsx: Component to display reviews.firebaseConfig.js: Firebase configuration.index.css: Global styles.main.jsx: Entry point for the React application.
public/: Contains static assets.tailwind.config.js: Tailwind CSS configuration.eslint.config.js: ESLint configuration.package.json: Project metadata and dependencies.