It's an online web project ideas sharing platform.
- User can create account
- User can login
- Allow user to reset password through email
- User can share full-stack project ideas in details
- User can assign features to their own ideas
- User can delete their own ideas
- User can delete their own features
- User can update their own ideas
- User can view newly shared ideas
- User can view top ideas by a specific time interval
- User can like ideas
- User can save ideas
- User can share ideas
- User can see other user's ideas, saves and likes
- User can search users
- User can search ideas
- User can update their own profile
- User can delete their own account
- User can change their own password
git clone https://github.com/Shahzayb/sidea.git
cd sidea
npm i
Create .env file in the root folder of project, and provide these env variables.
touch .env
Note: In case of missing env variables, an exception will be thrown
JWT_SECRET Json Web Token Secret (long random string).
SENDGRID_API_KEY, Key acquired by SendGrid.
COMPANY_EMAIL, Type any email address. Users will recieve email from this address.
COMPANY_NAME, Type your company name. Will be used in email.
CLIENT_BASE_URL, Your next.js app's base url.
VERCEL_URL, is provided by Vercel. Just type VERCEL_URL in name section and leave value empty, and click add.
create account in algolia and provide these values
ALGOLIA_APP_ID
ALGOLIA_ADMIN_API_KEY
ALGOLIA_SEARCH_ONLY_API_KEY
CLIENT_PAGE_QUERY_LIMIT, is use to represent page size.
Now, Create .env file in the sidea/prisma folder of project, and provide these env variables.
touch .env
DATABASE_URL, URL of MySQL database server.
After installing & adding env variables:
- Run
/db/db.sqlscript in MySQL database server - Run
npm run prisma:generate graphql/client/**,graphql/server/schema.ts, If you change any of these files, then runnpm run types:generate- Run the app in development mode with,
npm run dev
- Next.js
- Apollo Client
- Apollo Server
- Prisma.io
- SendGrid
- Material-UI
- Algolia Search
- React Quill
- Typescript
- GraphQL Code Generator
- AWS RDS MySQL Hosting
- Vercel Hosting Platform
- MySQL 8.x Server
- MySQL Docker (Optional)
Shahzaib Sarwar - shahzayb