|
1 |
| -# IITG Stackoverflow Coding club IITG |
| 1 | +# IITG stackoverflow |
| 2 | + |
| 3 | + |
| 4 | +## Tech Stack [MERN] |
| 5 | +#### Front-end |
| 6 | +* Front-end Framework: `React.js (with Redux)` |
| 7 | +* Styling: `Tailwind CSS` |
| 8 | + |
| 9 | +#### Back-end |
| 10 | +* For handling server requests: `Node.js with Express.js Framework` |
| 11 | +* As Database: `MongoDB` |
| 12 | +* API tested using: `POSTMAN` |
| 13 | +* Authentication: `JWT` |
| 14 | + |
| 15 | +## Guidelines to setup |
| 16 | + |
| 17 | +This application requires [Node.js](https://nodejs.org/) |
| 18 | + |
| 19 | +1. Clone the project |
| 20 | + ``` |
| 21 | + git clone https://github.com/joat28/iitg-stack-overflow |
| 22 | + ``` |
| 23 | +
|
| 24 | +2. Create a `.env` file in ```/server``` folder, and setup [Environment Variables](environment-variables). |
| 25 | +3. Run these commands then - |
| 26 | + ``` |
| 27 | + npm install |
| 28 | + cd client |
| 29 | + npm install |
| 30 | + ``` |
| 31 | +4. To start the client and the server |
| 32 | + ``` |
| 33 | + node server/index.js |
| 34 | + cd client |
| 35 | + npm start |
| 36 | + ``` |
| 37 | +
|
| 38 | +_NOTE: Might take sometime to start as there will be 2 servers running._ |
| 39 | +
|
| 40 | +## Environment Variables |
| 41 | +
|
| 42 | +To run this project, you will need to add the following environment variables to your .env file |
| 43 | +`PORT`, `DB_URI`, `JWT_SECRET_TOKEN` |
| 44 | +
|
| 45 | +
|
| 46 | +## API Endpoints |
| 47 | +
|
| 48 | +#### Base Url - |
| 49 | +`http://localhost:5000/api` |
| 50 | +
|
| 51 | +#### Auth |
| 52 | +* `POST /login` |
| 53 | +* `POST /register` |
| 54 | +* `DELETE /logout` |
| 55 | +
|
| 56 | +#### User |
| 57 | +* `GET /users` |
| 58 | +* `GET /user/:user_id` |
| 59 | +* `PATCH /user/:user_id` |
| 60 | +
|
| 61 | +#### Answer |
| 62 | +* `PATCH /answer/:answer_id` |
| 63 | +* `PATCH /answer/vote/:answer_id` |
| 64 | +* `DELETE /answer/:answer_id` |
| 65 | +* `DELETE /posts/answers/:id` |
| 66 | +
|
| 67 | +#### Questions |
| 68 | +* `GET /question` |
| 69 | +* `GET /question/:question_id` |
| 70 | +* `GET /question/top` |
| 71 | +* `GET /question/topTags` |
| 72 | +* `GET /question/answers/:question_id` |
| 73 | +* `POST /question/answers/:question_id` |
| 74 | +* `POST /question/ask` |
| 75 | +* `POST /question/tags/:pathname` |
| 76 | +* `PATCH /question/:question_id` |
| 77 | +* `PATCH /question/vote/:question_id` |
| 78 | +* `DELETE /question/:question_id` |
| 79 | +
|
| 80 | +## Acknowledgements |
| 81 | +
|
| 82 | + - [Axios](https://axios-http.com/) |
| 83 | + - [Redux](https://github.com/matiassingers/awesome-readme) |
| 84 | + - [React Markdown](https://bulldogjob.com/news/449-how-to-write-a-good-readme-for-your-github-project) |
| 85 | + - [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) |
| 86 | + - [Mongoose](https://mongoosejs.com/) |
| 87 | + - [Tailwind](https://tailwindcss.com/) |
| 88 | + - [Nodemon](https://nodemon.io/) |
| 89 | + - [Moment](https://momentjs.com/) |
| 90 | + - [Dice Bear](https://avatars.dicebear.com/) |
| 91 | + - [React Syntax Highlighter]() |
| 92 | +
|
| 93 | +## Authors |
| 94 | +
|
| 95 | +- [Prabhat Rao](https://www.github.com/joat28) |
| 96 | +- [Shashank Raj](https://github.com/srj1107) |
| 97 | +- [Tanmay Shreshth](https://github.com/TanmayS26) |
| 98 | +- [Shantanu Pathak](https://github.com/shantanu689) |
| 99 | +- [Kautilya Pandey](https://github.com/kpx3) |
| 100 | +
|
| 101 | +
|
| 102 | +
|
| 103 | +**Free Software, Hell Yeah!** |
| 104 | +
|
| 105 | +[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job. There is no need to format nicely because it shouldn't be seen. Thanks SO - http://stackoverflow.com/questions/4823468/store-comments-in-markdown-syntax) |
| 106 | +
|
| 107 | + [dill]: <https://github.com/joemccann/dillinger> |
| 108 | + [git-repo-url]: <https://github.com/joemccann/dillinger.git> |
| 109 | + [john gruber]: <http://daringfireball.net> |
| 110 | + [df1]: <http://daringfireball.net/projects/markdown/> |
| 111 | + [markdown-it]: <https://github.com/markdown-it/markdown-it> |
| 112 | + [Ace Editor]: <http://ace.ajax.org> |
| 113 | + [node.js]: <http://nodejs.org> |
| 114 | + [Twitter Bootstrap]: <http://twitter.github.com/bootstrap/> |
| 115 | + [jQuery]: <http://jquery.com> |
| 116 | + [@tjholowaychuk]: <http://twitter.com/tjholowaychuk> |
| 117 | + [express]: <http://expressjs.com> |
| 118 | + [AngularJS]: <http://angularjs.org> |
| 119 | + [Gulp]: <http://gulpjs.com> |
| 120 | +
|
| 121 | + [PlDb]: <https://github.com/joemccann/dillinger/tree/master/plugins/dropbox/README.md> |
| 122 | + [PlGh]: <https://github.com/joemccann/dillinger/tree/master/plugins/github/README.md> |
| 123 | + [PlGd]: <https://github.com/joemccann/dillinger/tree/master/plugins/googledrive/README.md> |
| 124 | + [PlOd]: <https://github.com/joemccann/dillinger/tree/master/plugins/onedrive/README.md> |
| 125 | + [PlMe]: <https://github.com/joemccann/dillinger/tree/master/plugins/medium/README.md> |
| 126 | + [PlGa]: <https://github.com/RahulHP/dillinger/blob/master/plugins/googleanalytics/README.md> |
0 commit comments