Scope: A platform where user can browse different projects that others build and back the project. Users can also start a project and seek supports.
MongoDB, Expressjs, React, Nodejs
> MERN is a fullstack implementation in MongoDB, Expressjs, React, Nodejs.MERN stack is the idea of using Javascript/Node for fullstack web development.
- MERN stack
- AWS SES(simple email service)
- Stripe payment API
-
Install Node.js: Make sure you have Node.js installed as it's required to run a Node.js server and use npm (Node Package Manager).
-
Install MongoDB: As the project uses MongoDB, ensure you have MongoDB installed and running on your machine or use a MongoDB cloud service.
-
Set up environment variables: You may need to set up environment variables such as database connection strings, API keys for AWS SES, Stripe, and any other services the application uses.
-
Install dependencies:
cd backend
npm install
cd frontend
npm install
-
Example frontend .env file:
REACT_APP_API_URL="http://localhost:8080/api/v1" NODE_ENV="dev"
Example backend .env file:
STRIPE_KEY="" JWT_SECRET="a" NODE_ENV="dev" MONGODB_URI="mongodb://localhost:27017"
As a general User:
- User can log in and signup for an account via normal way
- User will receive welcome email when sign up
- User can see featured project on the landing page
- User can click the project and be direct to a project detail page and see more information about the project
- User can back the project by choosing the amount they would like to pay via stripe
- User can see the project they create and back in their dashboard
As a project starter:
- User can start a project by fill in project details such as the name of the project, location, verifying personal identity, set up a bank account, project details, and photos
- User will receive payment from supporters and start the project. User will deliver the project by either shipping to supporters or achieve the project
- User login/Signup Auth with JWT token
- Project CRUD
- Plam CRUD
- Email welcome email to new signup user
- User Payment with stripe
Landing Page
User DashBoard
Project Detail Page