Jamlink is a web application created during the Ironhack bootcamp, providing a social platform for musicians. The application aims to connect musicians who want to organize and participate in jam sessions. Some key features of Jamlink include:
- Musician Profile: Create and customize your musical profile, showcasing your instruments, skills, and preferences.
- Social Network: Connect with other musicians, add them as friends, and discover new musical talents in the community.
- Jam Events: Create your own jam session events, specifying the date, time, location, and desired instruments.
- Event Participation: Join jam session events organized by other musicians, indicating the instrument you'd like to play.
- Friends List: Build a list of musical friends with whom you can interact, collaborate, and organize private jam sessions.
- Comment Interaction: Leave comments on events and profiles of other musicians to encourage communication and collaboration.
Make sure you have Node.js installed on your machine before getting started.
Follow the steps below to setup the application in your local development environment:
- Install dependencies
npm install
- Run the application
npm run dev
The application will open automatically on localhost (port 5005 if it's not in use already).
The following commands can be found in the package.json
file in the project root. To execute them, simply use the command the following way:
npm run <command>
Command | Description |
---|---|
start |
Starts the Node.js server for production. |
dev |
Starts the server with nodemon for development. |
Variable | Description |
---|---|
PORT |
Port for the API |
ORIGIN |
App origin/title |
MONGODB_URI |
MongoDB connection URI |
TOKEN_SECRET |
Secret key for authentication |
CLOUDINARY_NAME |
Cloudinary account name |
CLOUDINARY_KEY |
Cloudinary API key |
CLOUDINARY_SECRET |
Cloudinary API secret |
The file structure in the Jamlink front-end is organized as follows:
.
|-- .github/
|-- config/
|-- controllers/
|-- db/
|-- error-handling/
|-- middleware/
|-- models/
|-- routes/
|-- .gitignore
|-- README.md
|-- app.js
|-- package-lock.json
|-- package.json
|-- server.js
-
Back-end:
-
Tools and Utilities:
- GitHub Actions - For continuous integration and automatic deployment.
User routes |
---|
Base URL : /user |
HTTP Method | URI path | Description |
---|---|---|
GET | /getAllUsers | All users list |
GET | /:id | Matching ID user details |
PUT | /:id/edit | Matching ID user edition |
DELETE | /:id/delete | Matching ID user deletion |
Events routes |
---|
Base URL : /events |
HTTP Method | URI path | Description |
---|---|---|
GET | /getAllEvents | All events list |
POST | /saveEvent | Create new event |
GET | /:id | Matching ID events details |
PUT | /:id/edit | Matching ID events edition |
DELETE | /:id/delete | Matching ID events deletion |
Auth routes |
---|
Base URL : /auth |
HTTP Method | URI path | Description |
---|---|---|
POST | /signup | Signup user |
POST | /login | Login user |
GET | /verify | Verify Auth token |
This project uses various technologies and resources, each with its respective licenses. Below is the license information for the main technologies and tools used in the front-end:
- Express: MIT License
- Node.js: MIT License
- MongoDB: Server Side Public License (SSPL)
- Axios: MIT License
- GitHub Actions: GitHub Terms of Service
Created by Nacho Sansón.
Contributors: