Suggestions for a really tough and productive full stack project

I have done several mini projects using mean stack. But now I wanna start working on something amazing grand, difficult and genuinely useful to people in general (may be something in collaboration with machine learning and data mining ). Please do suggest me with ideas that come to you

Clone http://neonmob.com:
It’s a digital art collecting and trading website.
The neonmob community would thank you for an open source version :pray:
For current pain points: http://forum.neonmob.com/t/please-bring-back-the-old-neonmob/3025/2

Preprocessing as a service website:
Hooks into a user’s code repos, and preprocesses their jsx, coffee, typescript, sass, less, pug, etc. files and exports the artifacts to a location of the user’s choice.
Other angles you could do is to preprocess the files and report syntax errors or code smells for the user to inspect. Going further, you could create a bot that makes pull requests with edit suggestions.

Unit test logging dashboard:
Provision API credentials to users to post unit test results from services like Travis CI, Gitlab CI, etc. Then display the data in a dashboard. Going further, you can set up push notifications when new data is posted. Other opportunities here could be to visualize the errors or traces in a unique way that helps the user find the root cause.

Sports analysis service:
Allow users to upload replays of gameplay. Add an overlay tool that allows tacticians to mark up the video or make comments. Going further, you can track player stats over time to construct a profile of strengths and weaknesses.

Code similarity screener:
A light plagiarism checking tool that indexes code on the web. Allows users to upload code and check for similarity to pre-existing solutions based on algorithmic similarity.

Gift Bundling app:
Help users search gift items on amazon and save them into gift bundles. Gift bundles are groups of items that make sense as a gift basket. Let users tag gift bundles for different occasions (birthday, wedding, anniversary, graduation, etc.). Let users search public bundles by filtering total price or intended event and vote on their favorites. Going further, track price changes for bundles as a whole and alert users when the bundle price dips below a threshold. Going further, generate a thumbnail or cover image for bundles and let users post bundles with details to Pinterest.

Env Manager:
Know that pesky .env file that is sometimes forgotten to add into .gitignore? Eliminate it entirely by creating a web app that allows users to manage permissions and validity duration of their credential variables. Publish a start script as an npm package that users can add into their app as a dependency. Then they can start their app and inject environment variables from your server (instead of $ node app.js it would be $ [package name] app.js). The server would still have to provision access keys.

Node.js CMS:
Self-explanatory. Make a simple MVP though. Going further: add hosting as a service.

Database Service:
Create a key-value storage service by implementing a subset of Redis’s commands: SET, GET, DEL, EXISTS, DBSIZE. (Other source of inspiration for a command set: https://www.thumbtack.com/challenges/simple-database). The front end web app allows a user to provision and manage instances, and view or regenerate API keys and connection strings. Either publish a package that interfaces with the service through a connection string (e.g.: service://user:pass@service.herokuapp.com/collection_name) or expose the endpoints through an ID (e.g.: https://service.herokuapp.com/instancehash/dbsize).

Free Food Finder:
Crawl university calendars, meetups, etc. to find events that offer free food. Then aggregate the results and present a simple index for the front end.

Build an MVP of a Heroku add-on: https://elements.heroku.com/addons

Tier 4 projects from @P1xt’s guide are good too: https://forum.freecodecamp.com/t/computer-guide-web-development-with-computer-science-foundations-comprehensive-path/64516

Or complete the triple certification and get a non-profit client project.

5 Likes

@mtso sorry for such a late reply to your awesome answer. i actually don’t follow the fcc curriculum anymore and hence visit the site as well as the forum very rarely. I loved most of the ideas you suggested and actually decided to begin with a pre-processing service. I have implemented the github auth and integrations part along with an additional feature of importing files stored locally on the user’s computer and get it pre-processed. Now, i have been reading a lot since the last couple of days of how i could pre-process a file programmatically through my own codes without depending on external libraries and resources for the task, but I didn’t find a single place which would guide me a little in this direction. I wanted to ask if its impossible to have it done through codes of my own or I am bound to depend on other resources to get the processed result to serve the user?

tldr: not impossible, in fact, very possible.

Hi @amritjha, no problem, I frequent these forums on occasion too. I’m glad you liked the ideas.

Cheers on getting started with a source code pre-processing web service :beers:.

The ideas I initially thought of are intentionally open ended, so the speed and difficulty will vary depending on which parts of the project you decided to focus on. Writing just enough code to pull together libraries should be faster than choosing to dig down and roll-your-own X library/module (the library can be a deliverable in its own right). Remember, assuming you’re tackling this in node.js, npm is modules all the way down the rabbit-hole. But of course, the learning experience of rolling your own X is worthwhile too.

You’ve definitely chosen one of the tougher problems to roll-your-own. Pre-processors are like light compilers, and they have many moving parts, often composed of several programs.

In response to your question of the possibility (and scope) of using your own code versus a library to parse the file, I would say that it depends on how much of the specification of the source and destination languages that you want to support.

For example, converting from markdown (which has a relatively small specification) to HTML is doable in <100 lines of code (Source: https://gist.github.com/renehamburger/12f14a9bd9297394e5bd). At the same time, my favorite markdown to HTML library marked (Source: https://github.com/chjj/marked) is over 1000 lines of code itself, and its dependency tree has 343 children according to npm-remote-ls. (If we arbitrarily assign an average of 1000 lines of code to each package, that’s ~344k lines of code). The first gist solution has no guarantees on reliability and the second package promises to be full-featured and performant.

No doubt, you’ll need to be smart about how you approach processing from source to destination. But don’t get discouraged, it’s doable.

1 Like