Rumblr is a single page web application "Tumblr" clone where users can post vehicle related images along with a message.
- Live Site
- Usage
- Technologies Used
- MVP Feature List
- Frontend Routes
- Database Schema
- API Routes
- Tests
- Contact
cd backend
and create a .env based off .env.example. Fill in the newly created .env file with your PSQL user and database credentials.
-
Install dependencies in both backend and front-end directories
cd backend && npm install
cd frontend && npm install
-
In the backend/ folder run the following command to create,migrate, and seed the database.
npx dotenv sequelize db:create && npx dotenv sequelize db:migrate && npx dotenv sequelize db:seed:all
-
Run the following two commands from the root folder each on seperate terminal windows:
cd backend && npm start
cd frontend && npm start
- Navigate to http:https://localhost:3000/ to interact with the Rumblr app!
- Sequelize ORM
- PostgreSQL
- Express
- React
- Redux
- AWS S3
- Material UI
- Cypress.io
- Users can sign up, log in, and log out.
- Users can login as demo-user to interact with the application.
- Authenticated users can navigate to their Profile which displays their profile picture, bio, and posts.
- Authenticated users can navigate to Settings which allows them to update their profile picture, bio, username, email, and/or password.
- Authenticated users can create posts with a image and message.
- Authenticated users can like, edit, and delete their own posts.
- Authenticated users can view the newest posts, and a random post on the Discover page.
- Authenticated users can like other users posts as well as their own.
- Authenticated users can remove their like from other users posts as well as their own.
column name | data type | details |
---|---|---|
id | integer | not null, primary key |
username | string | not null, unique |
string | not null, unique | |
bio | string | nullable |
profilePicture | string | nullable |
hashedPassword | binary string | not null |
createdAt | datetime | not null |
updatedAt | datetime | not null |
column name | data type | details |
---|---|---|
id | integer | not null, primary key |
content | string | not null |
body | string | not null |
userId | integer | not null, foreign key |
createdAt | datetime | not null |
updatedAt | datetime | not null |
column name | data type | details |
---|---|---|
id | integer | not null, primary key |
postId | integer | not null, foreign key |
userId | integer | not null, foreign key |
createdAt | datetime | not null |
updatedAt | datetime | not null |
cd backend && npx dotenv sequelize db:seed:all
cd frontend && npx cypress open
- Run individual or all integration specs.
name: Mustafa Mousa
email: [email protected]