Odin Book Backend

Odin book REST API

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

Odin Book is a full stack project that leverages all the programming skills I have acquired so far to create a facebook clone. It features a React Frontend that is written in TypeScript using Vite. Redux is utilized to store session info on the client and persisted using redux-persist. Styling is done via the use of Tailwind CSS as the primary focus was functionality of the web app. The backend utilizes Javascript, AWS S3 bucket, MongoDB, Supertest, Node.js, and Express.js. Both the frontend and backend are hosted on heroku. AWS S3 bucket is utilized in the backend to handle image uploading from the frontend. Authentication is handled via the use of Json Web Tokens.

Odin-book-backend is a REST API created to communicate with my Odin-book front end. Odin-book-backend was built using test driven development while constructing the various controllers that encompass it. In addition, mongodb-memory-server is used to mock the mongodb database for testing. This was a very challenging project that pushed my knowledge of backend development and understanding of MongoDB. Image uploading is handled via AWS S3 bucket and the corresponding url is then stored in the MongoDB database.

Client Repo Odin-book

Fully Deployed Project Odin-book-ki

give it about 15-30 seconds after pressing login initially as the backend may be asleep 😴

(back to top)

Built With

  • NodeJS
  • JWT
  • Express.js
  • MongoDB
  • Heroku
  • NPM
  • AWS
  • Postman

(back to top)

Getting Started

Installation

This project is currently setup to only run from my mongodb database and AWS S3 bucket. You can configure it to run with your own with the proper setup of environment variables. After which, it should be able to run from local host without any issues.

environment variables required
  • DB_URI
  • SECRET
  • PORT
  • BUCKET
  • AWS_SECRET_ACCESS_KEY
  • AWS_ACCESS_KEY_ID
cors
  • cors settings should be configured to your preferences

Usage

This backend was primarily created to mimic many of the features present on Facebook such as registration, login, posting text, commenting text, updating usernames, updating profile photos, and adding/removing friends. If you need a reference for such code examples, you're free to use/borrow/reference any of the code present. Reach out to me if you have any questions.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Kurtis Ivey - @IveyCodingBjj - kurtiveycodes@gmail.com - linkedin.com/in/kurtisivey/

Project Link: https://odinbook-backend.herokuapp.com/

(back to top)

Acknowledgments

(back to top)