This project is a fullstack admin panel for managing users, artists, and songs. It includes a frontend built with React and a backend developed with Node.js and Express, using PostgreSQL as the database. The application allows for CRUD operations on user, artist, and song records, and features authentication and authorization.
- User Management: Create, read, update, and delete user records.
- Artist Management: Create, read, update, and delete artist records.
- Song Management: Create, read, update, and delete song records.
- Authentication: User login and session management.
- Pagination: Handle large datasets with pagination controls.
- Responsive Design: Modern UI with responsive layout using Tailwind CSS.
-
Frontend:
- React
- Tailwind CSS
- TanStack Table (formerly React Table)
- React Hook Form
- Zod
-
Backend:
- Node.js
- Express
- PostgreSQL
-
Authentication:
- JWT
- Node.js (v16 or later)
- PostgreSQL
-
Navigate to the
frontend
directory:cd frontend
-
Install dependencies: npm install
-
Navigate to the backend directory: cd backend
-
Install dependencies: npm install
-
Start the backend server: nodemon index
-
Start the frontend development server: npm start
Open your browser and navigate to http://localhost:3000 to access the admin panel.
Auth Endpoints
- POST /api/auth/register :to register user
- POST /api/auth/login :to Login user
User Endpoints
- GET /api/users/?page=1&limit=5 Fetch all users(paginated)
- POST /api/users: Create a new user
- PUT /api/users/:id : Update user details
- DELETE /api/users/:id : Delete a user
Song Endpoints
- GET /api/artists/artist_id/songs :Fetch songs By Artist
- POST /api/songs :Create a new song
- PUT /api/songs/:id : Update song details
- DELETE /api/songs/:id : Delete a song
Artist Endpoints
- GET /api/artists/?page=1&limit=5 :Fetch all artists(paginated)
- POST /api/artists/ :Create a new artist
- PUT /api/artists/:id : Update artist details
- DELETE /api/artists/:id :Delete an artist