Skip to content

dorlib/IMDB-Project

Repository files navigation

Hello everyone 👋
This is my first self-learned FullStack project!
The main purpose of this project is to practice code that includes both the client and the server side, working with web servers, databases and frameworks.

The client side is written with JavaScript, CSS and ReactJS (including materialUI and styled-components) while using GraphQL and react-apollo.
The sever is written with Go (including ent and gqlgen) and Java (Spring Boot) the databases we use is MySQL & MongoDB.

I'm not associated/connected with nor speak for "IMDB" site.

The main welcome page's photo Belong to "NETFLIX" inc.

Notice That Im currently working on the app, so NEW FEATURES are been added on daily basics!

React Go apollo Styled Components Open Source? Yes!

Issues pull request stars updated size

IMDB WELCOME

Built With


What the Application include?

The main entites in the app are: Movies, Directors, Actors, Reviews and Users, and there are also Likes, Comments and Favorites. As you can see in the welcome page of the app, the main "things" you can do are : contibuete, review, rate and search Let's cover them up!

  1. Contribute - the app depends on active users. only the logged in users can add new movies, directors, actors and reviews!
  2. Review - the app have review system, which is corrently on progress (We plan on make a review system which show the nickname and avatar of every user)
  3. Rate - the app let you rate your favorite movies
  4. Search - we have search engine by: users, movies, directors and genres (only users can search for other users)

And also, This app works with new cool technologies like Ent, which communicate with MySQL. Also grapqhl and gqlgen, which makes the client Request to the server. The app has fully working authentication and authorization processes!

In progress

  1. Data dashboard with saprated UI with angular for developers which will be integrated with the same backend & database.
  2. Careers page which will run on the same UI but with sprint boot as backend and mongoDB as databade.

Running the Application Yourself

Here's what needs to be done in order to get the app running locally on your machine.

Run the docker container:

Coming soon...

Or follow those steps:

  1. Clone the project to your machine with git clone https://github.com/dorlib/IMDB-Project.git
  2. Install Go on your machine from here.
  3. Install MySQL on your machine from here.
  4. On a command line inside of the application's folder, run npm start
  5. On another terminal run the server with go run ./server -emailAdd <your mail> -Pass <your pass>
  6. Provided email address and password will not be saved, and they are provided only to make reset password possible.
  7. Make sure that you allow less secure apps From your Google Account and also done 2 step-verification, check [this].(https://stackoverflow.com/questions/60701936/error-invalid-login-application-specific-password-required) post for more Info.
  8. Open http://localhost:3000 to view it in the browser.

Seed data to your database

In my opinion, the best way to test this app is by createing a user, add your favoritre movies, actors and directors and make some reviews and ratings!

But, if your looking for pre-made data to insert, Here's what you need to do to get it:

  1. Create a user in the registration form.
  2. Log in to your account.
  3. Click on you avatar on the top - right corner and then click on "insert data" option.

insert

  1. And thats it!

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.

notise the "mission.txt" file in "public" directory to see futre features which planned to be added!.

How To Contribute

  1. Fork the repository to your own Github account.
  2. Clone the project to your machine.
  3. Create a branch locally with a succinct but descriptive name.
  4. Commit changes to the branch.
  5. Following any formatting and testing guidelines specific to this repo.
  6. Push changes to your fork.
  7. Open a Pull Request in my repository.

Creator / Maintainer

Dor Liberman (dorlib)

If you have any questions or feedback, I would be glad if you will contact me via mail.

Connect via Email

This project was created for educational purposes, for personal and open-source use.

If you like my content or find my code useful, give it a ⭐