Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/daccotta-org/daccotta

A social network for movies.
https://github.com/daccotta-org/daccotta

bun express expressjs firebase firebase-auth gssoc-ext hacktoberfest javascript mongodb movies-app-react react react-query reactjs social tanstack-query typescript

Last synced: about 23 hours ago
JSON representation

A social network for movies.

Awesome Lists containing this project

README

        



Daccotta 🌟

**A Social Network for Movie Lovers**

Hey movie lovers! Welcome to **Daccotta**, a web app designed to simplify your movie-watching experience and make it easy to share your favorite films with friends. Think of us as your go-to social network for everything movies! πŸŽ₯🍿

**Love it?** πŸ‘‰ _Don't forget to star this repo!_ 🌟



🌟 Stars
🍴 Forks
πŸ› Issues
πŸ”” Open PRs
πŸ”• Close PRs




Stars
Forks
Issues
Open Pull Requests
Closed Pull Requests

---

![daccotta](https://github.com/user-attachments/assets/120ce0eb-7009-448c-a5da-f4b7432db6e0)
also be a part of the community and join our [discord](https://discord.gg/R859peEW) .

### This project is now OFFICIALLY accepted for Heart on Fire

| Name | Logo | Purpose |
| ------------------ | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| GSSoC'2024-Extd | ![GSSoC Logo](Images/GSSoC-Ext.png) | The coding period is from October 1st to October 30th, during which contributors make contributions and earn points on the platform. |
| Hacktoberfest 2024 | ![Hacktoberfest Logo](Images/hacktoberfest.png) | Hacktoberfest is a month-long October event welcoming all skill levels to join the open-source community. |

---




## πŸ“‘ Table of Contents

1. [🎬 What is Daccotta?](#-what-is-daccotta)
2. [πŸ”‘ Key Features](#-key-features)
- [🚧 Coming Soon Features](#coming-soon)
3. [πŸ› οΈ Tech Stack](#️-tech-stack)
4. [πŸš€ Getting Started](#-getting-started)
- [πŸ—‚οΈ Setting Up Daccotta Repository](#️-setting-up-daccotta-repository)
- [πŸ”§ Installing Bun](#installing-bun)
- [🍎 For macOS](#for-macos)
- [πŸͺŸ For Windows](#for-windows)
- [πŸ–₯️ Frontend-Only Setup](#️-frontend-only-setup)
- [πŸ—‚οΈ Setting Up Full Stack Daccotta](#️-setting-up-full-stack-daccotta-client--server)
- [πŸ’Ύ Setting Up MongoDB Atlas](#setting-up-mongodb-atlas)
- [πŸ” Setting Up Firebase](#setting-up-firebase)
- [βš™οΈ Running the Full Stack Project](#running-the-full-stack-project)
5. [❀️✨ Our Valuable Contributors](#our-valuable-contributors-️)
6. [🀝 Contributing](#-contributing)
7. [πŸ“§ Contact](#-contact)
8. [⚠️ Attribution](#️-attribution)

## 🎬 What is Daccotta?

Daccotta is a platform built for film enthusiasts to discover, and showcase their taste in movies with like-minded individuals.
You can create your own lists, add journal entries of the movies you have watched and get recommendations on the basis of your lists and journal entries. Daccotta a community that brings people together through a shared love of cinema.

---

## πŸ”‘ Key Features

1. **🎞️ List Creation**: Create and manage your own movie lists.
2. **πŸ“– Movie Journals**: Keep a personalized journal entry for every movie you watch.
3. **πŸ“Š User Stats**: Get insights into your movie-watching habits.
4. **πŸ€– personalized reccomendations**: Get personalized reccomendations based on your movie watching habits.

#### **Coming Soon**:

5. **πŸ‘₯ Group Creation**: Form groups with friends to compare and share your movie stats.
6. **πŸ“ˆ Group Stats**: View combined statistics and trends of your movie-watching groups.

---

## πŸ› οΈ Tech Stack

Daccotta is built using a modern and efficient tech stack to provide the best experience for users:

- **Frontend**: React.js
- **Styling**: TailwindCSS + [shadcn](https://shadcn.dev/) etc.
- **Data Fetching & State Management**: [TanStack Query](https://tanstack.com/query) + axios.
- **Backend**: Bun + express
- **Database**: MongoDB Atlas (Cloud)
- **Authentication**: Firebase

---

## πŸš€ Getting Started

To set up and run **Daccotta** locally, follow the steps below:

### πŸ—‚οΈ Setting Up Daccotta Repository

1. Clone the repository to your local machine:
```bash
git clone https://github.com/daccotta-org/daccotta.git
```
2. Navigate to the project directory:
```bash
cd daccotta
```

### BullseyeInstalling Bun

**Bun** is a fast all-in-one JavaScript runtime we use to manage both the frontend and backend. You'll need to install Bun before proceeding with any setup.

#### For macOS:

1. Open your terminal.
2. Run the following command to install Bun:

```bash
curl -fsSL https://bun.sh/install | bash -s "bun-v1.1.27"
```

3. Restart all your terminals after installing bun.

#### For Windows:

To install, paste this into a powershell (run powershell as administrator):

```bash
powershell -c "irm bun.sh/install.ps1|iex"
```

or paste this

```bash
npm install -g bun
```

**Restart all your terminals after installing bun inclduing vscode.**

### πŸ–₯️ Frontend-Only Setup

If you only want to contribute to the frontend, follow these steps:

1. Navigate to the client folder:

```bash
cd client
```

2. Install dependencies:

```bash
bun i
```

3. Create a `.env` file in the `client` directory and paste the following content:

```
VITE_ACCESS_KEY= "your tmdb key"
VITE_API_KEY=AIzaSyDp5LFFF9TU9W1LzB0Cus--lxBawNyBc5Q
VITE_AUTH_DOMAIN=mock-daccotta.firebaseapp.com
VITE_PROJECT_ID=mock-daccotta
VITE_STORAGE_BUCKET=mock-daccotta.appspot.com
VITE_MESSAGING_SENDER_ID=586345450139
VITE_APP_ID=1:586345450139:web:84f82ab90882cd0fe4143e
VITE_API_BASE_URL=https://daccotta-5loj.onrender.com
```

4. You still need to setup your tmdb account and get an API key from them , its free and takes just 5 mins. refer to their [docs](https://developer.themoviedb.org/docs/getting-started). if you still face any issues contact to the maintainers of the repo we may be able to provide you with a test key.

5. Start the frontend development server:

```bash
bun run dev
```

6. Your frontend should now be running at `http://localhost:5173`.

#### Test Account Credentials

You can use the following test account to log in:

- Email: [email protected]
- Password: 12345678

### πŸ—‚οΈ Setting Up Full Stack Daccotta (Client & Server)

If you're setting up the full stack, continue with these steps:

refer to .env.example files for env variables

1. Install dependencies for the server:

```bash
cd ../server
bun i
```

2. **Setting Up MongoDB Atlas**:

- Visit the [MongoDB Atlas website](https://www.mongodb.com/cloud/atlas) and sign up for an account.
- After logging in, create a new project, then click on **Build a Cluster** to set up a free-tier cluster.
- Once your cluster is ready, click **Connect**, then choose **Connect your application**.
- Copy the connection string provided. It will look something like this:
```bash
mongodb+srv://:@cluster0.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
```
- Replace ``, ``, and `myFirstDatabase` with your actual MongoDB Atlas username, password, and the database name you wish to use.
- Set the `MONGO_URL` in your project's `.env` file with the copied connection string:
```bash
MONGO_URI=mongodb+srv://:@cluster0.mongodb.net/daccotta?retryWrites=true&w=majority
```

3. **Setting Up Firebase**:

- Go to the [Firebase Console](https://console.firebase.google.com/) and create a new project. for sign in providers select - email/password.
- After registering your Node.js app, Firebase will provide your app's configuration object code. This code includes your API keys and other project-specific details.
![image](https://github.com/user-attachments/assets/59ae730b-01da-440a-8e31-6d9aecb4b2b9)

- In the Authentication section of your Firebase project in the console, ensure that you have enabled the Email/Password sign-in method under `Sign-in Method`.

- Set the Firebase credentials in your `client/.env` file as above , refer to .env.example.:

```
VITE_ACCESS_KEY= "your tmdb key"
VITE_API_KEY=
VITE_AUTH_DOMAIN=
VITE_PROJECT_ID=
VITE_STORAGE_BUCKET=
VITE_MESSAGING_SENDER_ID=
VITE_APP_ID=
VITE_API_BASE_URL=http://localhost:8080
```

- After setting up, To access the service account, head over to your Firebase console, click on the Settings icon in the top-left corner of the developer console, and select Project Settings. Then, select the Service Account tab, and click on Generate new private key, rename that file to `firebases.json` and place it in your server folder.
![image](https://github.com/user-attachments/assets/085081d6-3eb1-4018-99ad-cfcf8c7d1a83)

5. **Running the Full Stack Project**:

- Return to the root directory:
```bash
cd ..
```
- Install all dependencies at the root level:
```bash
bun i
```
- Start both frontend and backend with:
```bash
bun start:all
```

6. Your full stack app should now be running! πŸŽ‰ Open your browser and go to `http://localhost:5173`.

---

## Our Valuable Contributors ❀️✨

| Contributor | Contributor | Contributor | Contributor |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| AshuKr22

[AshuKr22](https://github.com/AshuKr22) πŸ‘¨β€πŸ’»

| Sid

[Sid](https://github.com/sid0000007) πŸ‘¨β€πŸ’»

| Shubham Agarwal

[Shubham Agarwal](https://github.com/shubhagarwal1) πŸ‘¨β€πŸ’»

| Mehul

[Mehul](https://github.com/mehul-m-prajapati) πŸ‘¨β€πŸ’»

|
| Alolika

[Alolika](https://github.com/alo7lika) πŸ‘©β€πŸ’»

| Daccotta

[Daccotta](https://github.com/daccotta) πŸ‘¨β€πŸ’»

| Knighthinata

[Knighthinata](https://github.com/knighthinata) πŸ‘¨β€πŸ’»

| Sourabh

[Sourabh](https://github.com/Sourabh782) πŸ‘¨β€πŸ’»

|
| Samyak Aditya

[Samyak Aditya](https://github.com/samyak-aditya) πŸ‘¨β€πŸ’»

| Harsh Bhar

[Harsh Bhar](https://github.com/harshbhar0629) πŸ‘¨β€πŸ’»

| Amit Bora

[Amit Bora](https://github.com/amitb0ra) πŸ‘¨β€πŸ’»

| Mukul Kundu

[Mukul Kundu](https://github.com/mukulkundu) πŸ‘¨β€πŸ’»

|
| Mayur

[Mayur](https://github.com/mayur1377) πŸ‘¨β€πŸ’»

| Ikki Ocean

[Ikki Ocean](https://github.com/IkkiOcean) πŸ‘¨β€πŸ’»

| Dhruv Pahuja

[Dhruv Pahuja](https://github.com/Dhruv-pahuja) πŸ‘¨β€πŸ’»

| Say Het

[Say Het](https://github.com/say-het) πŸ‘¨β€πŸ’»

|
| Dev Rish

[Dev Rish](https://github.com/DevRish) πŸ‘¨β€πŸ’»

| Vaibhav

[Vaibhav](https://github.com/vaibhav01-git) πŸ‘¨β€πŸ’»

| Trijal Kaushik

[Trijal Kaushik](https://github.com/trijalkaushik) πŸ‘¨β€πŸ’»

| |

## Contributing

We'd love your help to make **Daccotta** even better! If you're interested in contributing, please read [CONTRIBUTION GUIDE](./CONTRIBUTING.md).

---

## Detective Contact

### Project Admins⚑

ASHU KUMAR


SIDDHARTH GUPTA


Feel free to reach out to us for any queries or suggestions:
**Email**: [email protected]
**Website**: [daccotta.com](https://daccotta.com)

---

## ⚠️ Attribution

Daccotta uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB.

---

**Made with ❀️ by movie lovers for movie lovers!**

---